Como posso ver o que capivara encontrada em um passo pepino falhando?
-
19-09-2019 - |
Pergunta
Eu comecei a migração de pepino + webrat de pepino + capivara. Agora o comportamento de "eu deveria ver" parece ser um pouco diferente. A maioria destes falhar agora, embora eu não muda nada na página. Eu substituí o trecho que deve ser encontrado com algumas coisas que é em cada página e, por algum texto funciona e por outro texto que não. Não consigo encontrar qualquer padrão em que é encontrado no conteúdo da página eo que não é. Webrat usado para imprimir o conteúdo da página é que ele encontrou, no caso de ele não continha a frase necessário. Existe uma maneira de ter capivara mostram qual o texto que recebemos da página em que tentou encontrar o texto?
Solução
Tente adicionar esta etapa:
Then show me the page
Outras dicas
chamadas Then show me the page
Webrat método save_and_open_page
subjacente / de capivara. Descobriu que útil quando se trabalha com bife.
Se você quiser que o navegador abra a página quando a página não usar o gem 'Launchy'. Adicioná-lo ao seu arquivo gem, e depois em / recursos / suporte criar um arquivo chamado debugging.rb com conteúdo:
After do |scenario|
save_and_open_page if scenario.failed?
end
Se você estiver usando Javascript ou Ajax em suas páginas e quer ver o que está acontecendo, eu descobri que o motorista Poltergeist é muito bom em deixar você entrar no DOM e descobrir o que está acontecendo de errado.
Se você configurar seu driver Capivara com a opção de depuração remota:
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, inspector: true)
end
Você pode então colocar a seguinte linha em seus passos:
page.driver.debug
que dispara-se um novo navegador Chromium com o conjunto estado DOM atual, permitindo-lhe chegar ao console. (Em minha versão do Linux, eu tinha de cromo link simbólico para o cromo-browser mas caso contrário, funcionou bem).
Informações Fonte: http://jonathanleighton.com/articles/2012/poltergeist-0-6 -0 /
Then show me the response
não funcionou para mim com pepino 1.1 eu achei útil para escrever uma etapa usando o comando de capivara:.
print page.html
Isso gera o estado atual do DOM
Você também pode usar "Então mostre-me a resposta" que gera o código HTML para o console se você não quiser usar um navegador.
Você poderia tê-lo sempre tomar um tiro de tela quando algo falhou. Depurar um monte de recursos na falta dessa forma.