我怎么能看到一个失败的黄瓜一步发现了什么水豚?
-
19-09-2019 - |
题
我开始迁移从黄瓜+ webrat到黄瓜+水豚。现在的“我要见”的行为似乎有些不同。大多数这些现在失败了,但我没有改变任何页面上。我换成应该与一些东西,在每个页面上的一些文字它的工作原理,并在其他文本它不被发现的片段。我找不到在什么是在页面的内容中找到的任何模式,什么不是。 Webrat用于打印的页面内容是什么,它发现,如果它不包含所需的短语。反正有水豚表演它从它试图找到文本的页面得到了什么文字?
解决方案
尝试增加此步骤:
Then show me the page
其他提示
Then show me the page
调用webrat /水豚的底层save_and_open_page
方法。与牛排工作时发现,有用的。
如果你想有当页面出现故障时使用“launchy”宝石浏览器中打开的页面。 它添加到您的宝石文件,然后在/功能/支持创建一个名为debugging.rb文件,内容:
After do |scenario|
save_and_open_page if scenario.failed?
end
如果你在你的页面中使用JavaScript或Ajax和想看看发生了什么事情,我发现,骚灵司机是让你进入DOM,并找出哪些地方出了错非常好。
如果你设置你的水豚的驱动程序与远程调试选项:
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 /
Then show me the response
并没有为我一起工作的黄瓜1.1 的我发现使用水豚的命令写了一步有用的:
print page.html
此输出DOM的当前状态
您也可以使用“那么告诉我响应”,这将HTML输出到控制台,如果你不想使用浏览器。
您总是可以采取它的屏幕截图,当事情失败。我调试故障的功能,方式的LOT。