如何才能看到黄瓜失败的黄瓜步骤中发现了什么?

ajm*_*ann 44 ruby-on-rails webrat cucumber capybara

我开始从黄瓜+ webrat迁移到黄瓜+水豚.现在"我应该看"的行为似乎有些不同.其中大部分都失败了,虽然我没有改变页面上的任何内容.我替换了应该找到的片段,其中包含每个页面上的一些内容,对于某些文本它可以使用,而对于其他文本则不然.我找不到页面内容中的任何模式,也没有找到任何模式.Webrat用于打印它找到的页面内容,以防它不包含所需的短语.反正有没有capybara显示它从试图找到文本的页面中得到了什么文本?

sen*_*hil 40

Then show me the page调用webrat/capybara的基础save_and_open_page方法.发现在使用牛排时很有用.


mar*_*cgg 32

尝试添加此步骤:

Then show me the page
Run Code Online (Sandbox Code Playgroud)


jac*_*lin 24

如果您希望浏览器在页面失败时打开页面,请使用"launchy"gem.将它添加到您的gem文件中,然后在/ features/support中创建一个名为debugging.rb的文件,其中包含以下内容:

After do |scenario|
   save_and_open_page if scenario.failed?
end
Run Code Online (Sandbox Code Playgroud)


Dan*_*and 9

如果你在你的页面中使用Javascript或Ajax并想看看发生了什么,我发现Poltergeist驱动程序非常善于让你进入DOM并找出问题所在.

如果使用远程调试选项设置Capybara驱动程序:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, inspector: true)
end
Run Code Online (Sandbox Code Playgroud)

然后,您可以在步骤中添加以下行:

page.driver.debug 
Run Code Online (Sandbox Code Playgroud)

这将启动一个具有当前DOM状态集的新Chromium浏览器,让您进入控制台.(在我的Linux版本中,我不得不将铬符号链接到铬浏览器,但它运行正常).

来源信息:http://jonathanleighton.com/articles/2012/poltergeist-0-6-0/


sub*_*ing 8

Then show me the response黄瓜1.1对我不起作用.我发现使用capybara的命令编写一个步骤很有用:

print page.html

这将输出DOM的当前状态


kin*_*net 7

您还可以使用"然后显示响应",如果您不想使用浏览器,则会将HTML输出到控制台.

  • `print page.html`(在你的步骤定义中)适用于Rails3 (6认同)