我在Ubuntu(14.04 LTS)上使用了capybara webkit,我在尝试使用它时遇到以下错误:
Capybara::Webkit::ConnectionError: /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/bin/webkit_server failed to start.
from /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/lib/capybara/webkit/connection.rb:75:in `parse_port'
from /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/lib/capybara/webkit/connection.rb:81:in `discover_port'
from /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/lib/capybara/webkit/connection.rb:62:in `start_server'
from /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/lib/capybara/webkit/connection.rb:25:in `initialize'
from /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/lib/capybara/webkit/driver.rb:17:in `new'
我使用以下方式安装了QT:
sudo apt-get install libqt4-dev libqtwebkit-dev libqt5webkit5-dev
使用宝石版本:capybara(2.4.4)和capybara-webkit(1.3.1)
相同的程序在mac上工作正常(使用自制软件安装qt)
由于
答案 0 :(得分:8)
自问这个问题已经有很长一段时间了,但即使我使用了更多古老版本的东西,我也遇到了同样的问题。事实证明,webkit
需要能够连接到某个X-Server,如果它失败,这就是它的反应。我最终安装了xvfb
并使用
xvfb-run --auto-servernum bundle exec rake test
运行我的测试时,(当然是别名)。这可能不是最佳的,但它对我来说已经足够了。也许这有助于下一个遇到此错误的人。
答案 1 :(得分:4)
我整个上午都打倒了我的头。结果我从rails_helper.rb
if ENV['HEADLESS']
require 'headless'
headless = Headless.new
headless.start
at_exit { headless.stop }
end
我们使用HEADLESS环境变量来触发它。不确定这是典型的还是当地的惯例。无论如何,我需要将export HEADLESS=1
添加到.env
以解除此问题。
我还必须在Gemfile中添加gem 'headless', '~> 1.0.2'
。