44 votes

Comment puis-je voir quelle capybara se trouve dans une étape de concombre défaillante?

J'ai commencé la migration de concombre + webrat de concombre + capybara. Aujourd'hui, le comportement de "je devrais voir" semble être un peu différent. La plupart de ces échouer maintenant, bien que je n'ai pas changer quoi que ce soit sur la page. J'ai remplacé l'extrait de code qui doivent être trouvés avec des trucs qui se trouve sur chaque page et le texte qu'il fonctionne et pour un autre texte, il ne le fait pas. Je ne peux pas trouver n'importe quel modèle de ce qui est trouvé dans le contenu de la page et ce qui ne l'est pas. Webrat utilisée pour l'impression de ce que le contenu de la page, c'est qu'il a trouvé, dans le cas où elle ne contient pas les requis de la phrase. Est de toute façon il ont capybara montrons ce texte, il a obtenu à partir de la page dans laquelle il a essayé de trouver le texte?

40voto

sent-hil Points 3206

Then show me the page appelle la méthode sous-jacente save_and_open_page webrat / capybara. J'ai trouvé cela utile lorsque vous travaillez avec un steak.

32voto

marcgg Points 25599

Essayez d'ajouter cette étape:

 Then show me the page
 

24voto

jacklin Points 880

Si vous souhaitez que le navigateur ouvre la page en cas d'échec de la page, utilisez la gem "launchy". Ajoutez-le à votre fichier GEM, puis dans / features / support, créez un fichier appelé debugging.rb avec le contenu suivant:

 After do |scenario|
   save_and_open_page if scenario.failed?
end
 

9voto

Dan Garland Points 1127

Si vous êtes à l'aide de Javascript ou de l'Ajax dans vos pages et que vous voulez voir ce qu'il se passe, j'ai trouvé que le Lutin pilote est très bon en vous permettant d'obtenir dans les DOM et de trouver ce qui ne va pas.

Si vous configurez votre Capybara pilote avec la télécommande option de débogage:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, inspector: true)
end

Vous pouvez ensuite mettre la ligne suivante dans vos démarches:

page.driver.debug 

Ce qui déclenche un nouveau navigateur Chromium avec le DOM actuel état, vous permettant d'obtenir à la console. (Sur ma version de Linux, j'ai du lien symbolique de chrome de chrome le navigateur, mais sinon il a bien fonctionné).

Source de l'Info: http://jonathanleighton.com/articles/2012/poltergeist-0-6-0/

8voto

joscas Points 2536

Then show me the response n'a pas fonctionné avec le concombre 1.1. J'ai trouvé utile d'écrire une étape en utilisant la commande de capybara:

print page.html

Ceci sort l'état actuel du DOM

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X