我开始从黄瓜+网络迁移到黄瓜+水豚。现在“我应该看”的行为似乎有些不同。其中大部分都失败了,虽然我没有改变页面上的任何内容。我替换了应该找到的片段,其中包含每个页面上的一些内容,对于某些文本它可以使用,而对于其他文本则不然。我找不到页面内容中的任何模式,也没有找到任何模式。 Webrat用于打印它找到的页面内容,以防它不包含所需的短语。反正有没有capybara显示它从试图找到文本的页面得到了什么文本?
答案 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)
Then show me the response
对我不起作用。
print page.html
这将输出DOM的当前状态
答案 5 :(得分:7)
如果您不想使用浏览器,也可以使用“然后显示响应”,将HTML输出到控制台。
答案 6 :(得分:0)
当某些内容失败时,您可以随时进行屏幕截图。我通过这种方式调试了很多失败的功能。