45

我开始从黄瓜 + webrat 迁移到黄瓜 + 水豚。现在“我应该看到”的行为似乎有些不同。尽管我没有更改页面上的任何内容,但其中大多数现在都失败了。我用每一页上的一些东西替换了应该找到的片段,对于某些文本它有效,而对于其他文本则无效。我在页面内容中找到的内容和没有的内容中找不到任何模式。Webrat 用于打印它找到的页面内容,以防它不包含所需的短语。无论如何让水豚显示它从试图查找文本的页面中获得的文本?

4

7 回答 7

41

Then show me the page调用 webrat/capybara 的底层save_and_open_page方法。发现在处理牛排时很有用。

于 2011-02-13T08:16:12.497 回答
32

尝试添加此步骤:

Then show me the page
于 2010-03-10T09:18:31.140 回答
24

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

After do |scenario|
   save_and_open_page if scenario.failed?
end
于 2011-12-20T03:02:20.590 回答
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 版本上,我必须将 chromium 符号链接到 chromium-browser,但它可以正常工作)。

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

于 2012-09-14T11:04:28.140 回答
8

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

print page.html

这会输出 DOM 的当前状态

于 2013-06-06T10:11:46.310 回答
7

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

于 2010-05-14T22:50:49.693 回答
0

当出现故障时,您始终可以对其进行屏幕截图。我以这种方式调试了很多失败的功能。

于 2013-06-06T22:36:48.827 回答