14

我正在使用 capybara、capybara-webkit、capybara-screenshot 和黄瓜。(Ruby 1.9.3,Rails 3.1.3)并且Capybara.javascript_driver = :webkit还设置了 env.rb

不幸的是,由于某种原因,运行黄瓜规范@javascript永远不会成功,错误截图只是捕获了 example.com。

我实际尝试打开的 URL 是使用我的一个模型的 rails 路由器结果生成的,例如visit products_url

那么我怎样才能避免它最终查询 example.com?

非常欢迎任何输入。


仅仅因为评论搞砸了-这就是我发现的解决方案:

Capybara.run_server = true
Capybara.server_port = 7787
Before '@javascript' do
  Capybara.app_host = "http://127.0.0.1:#{Capybara.server_port}"
end
4

3 回答 3

13

尝试visit products_path改用。他们不建议在README的“Gotchas”部分使用绝对 URL 。

于 2011-12-24T10:23:35.127 回答
1

对我来说,有很多运动鞋“陷阱”(我正在使用 Capybara 和 Rspec)。最初在规范中我有:

visit "foos/5"

这很好用,Rack::Test但是当我想切换到webkit驱动程序来测试 js 交互时,我得到了那个异常(无法加载 URL:file:///products (Capybara::Driver::Webkit::WebkitInvalidResponseError))。

我必须做的是改变我经过的路径,如下所示:

visit "/foos/5"

成功!!

于 2012-02-28T22:33:16.273 回答
1

这是另一个潜在的陷阱,为可能遇到此问题的其他人发布。我正在测试动作缓存,Rails 生成的关键看起来像“views/www.example.com/products”。即使您使用 products_path 作为 url,也会发生这种情况。这可能导致需要设置您的服务器名称,以便您可以提前知道预期的缓存键。

于 2012-09-17T18:45:55.310 回答