Capybara-webkit试图打开example.com

时间:2011-12-23 20:19:52

标签: ruby-on-rails-3 capybara capybara-webkit

我正在使用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

3 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:1)

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

visit "foos/5"

这与Rack::Test一起工作正常但是当我想切换到webkit驱动程序来测试js交互时,我得到了异常(无法加载URL:file:///产品(Capybara: :驱动::的Webkit :: WebkitInvalidResponseError))

我必须做的是改变我访问的路径,如下:

visit "/foos/5"

SUCCES !!

答案 2 :(得分:1)

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