无法让capybara-webkit正常工作

15

我正在使用capybara对我的rails 3应用进行集成测试。

当我在场景中添加 :js => true 后,我的测试可以使用selenium正常运行,但是当我更改为使用webkit驱动程序进行 JavaScript 测试时,每个测试都会出现以下错误:

Capybara::Driver::Webkit::WebkitInvalidResponseError: 无法加载URL:http://www.example.dev:7171/user_sessions

我的应用是一个多域应用,因此在 spec_helper 中我设置了端口:

Capybara.server_port = 7171

并在 background block 中设置 app_host ,如下所示:

Capybara.app_host = "http://#{subdomain}.example.dev:7171"

如果我将以下内容添加到spec_helper中的 rspec.configure 块中,则会出现上述错误:

config.before(:each) do
   DatabaseCleaner.start
   Capybara.run_server = false
   Capybara.javascript_driver = :webkit
   Capybara.default_selector = :css
   Capybara.server_port = 7171 
end

有人可以帮忙吗?我也在使用spork自动测试。

3个回答

1
你的应用程序是否重定向到安全(https://)网址?
如果是这样,您需要重新声明Capybara的:webkit驱动程序,并将:ignore_ssl_errors选项设置为true:
Capybara.register_driver :webkit do |app|
  Capybara::Driver::Webkit.new(app, :ignore_ssl_errors => true)
end

1

是的,我试过了,但没有成功,无论如何还是谢谢!还有其他建议吗? - Rick Moss
很遗憾,我没有找到答案。我已经为你的问题点赞,并会继续关注它,以防我找到其他信息。祝你好运! - StevenMcD

0
我想说我们在Ubuntu CI服务器上遇到了同样的错误。这是一个LTS版本,因此运行着较旧的libqt(v4.6.2)- 升级到4.7.4(使用tarball)解决了问题。也许对你的情况没有帮助,但值得检查一下。

1
谢谢这个提示,我之前遇到了同样的问题,这让我意识到在安装capybara-webkit和使用它之间,我已经在我的机器上更新了QT到4.8,所以我需要重新构建gem :) 这节省了我几个小时的挫败感。 - workmad3
谢谢你的评论(我从#rubyonrails认出了你 :) - 我希望有人能看到它,这可能是他们需要的小提示。 - smathy
@smathy, 你正在运行哪个版本的Ubuntu? - thekingoftruth
我们在那台服务器上运行的是10.04 LTS。 - smathy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接