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

时间:2010-03-10 01:46:34

标签: ruby-on-rails cucumber webrat capybara

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

7 个答案:

答案 0 :(得分:40)

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

答案 1 :(得分:32)

尝试添加此步骤:

Then show me the page

答案 2 :(得分:23)

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

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

答案 3 :(得分:9)

如果您在页面中使用Javascript或Ajax并希望了解正在发生的事情,我发现Poltergeist驱动程序非常擅长让您进入DOM并找出问题所在。

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

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

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

page.driver.debug 

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

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

答案 4 :(得分:8)

使用黄瓜1.1

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

print page.html

这将输出DOM的当前状态

答案 5 :(得分:7)

如果您不想使用浏览器,也可以使用“然后显示响应”,将HTML输出到控制台。

答案 6 :(得分:0)

当某些内容失败时,您可以随时进行屏幕截图。我通过这种方式调试了很多失败的功能。