【发布时间】:2016-02-02 09:08:39
【问题描述】:
我正在使用 Cucumber 和 Selenium。在我的 env.rb 中,我正在注册 phantomjs 驱动程序,如下所示:
Capybara.register_driver :phantomjs do |app|
caps = Selenium::WebDriver::Remote::Capabilities.new
caps['acceptSslCerts']=true
caps['javascriptEnabled']=true
caps['webStorageEnabled']=true
caps['applicationCacheEnabled']=true
caps['nativeEvents']=true
Capybara::Selenium::Driver.new(app, :browser => :phantomjs, :desired_capabilities => caps)
end
该驱动设置为默认驱动如下:
Before do
Capybara.app_host = "www.google.com"
Capybara.current_driver = :phantomjs
Capybara.javascript_driver = :phantomjs
end
这在 Mac 上运行良好并且测试通过了。但是在 ubuntu 上我得到了这个错误
Connection refused - connect(2) for 127.0.0.1 port 8910 Errno:ECONNREFUSED
我使用 netstat 进行了检查,发现 phantomjs 正在运行。 我在 Ubuntu 15.04 上。我在 14.04 看到同样的问题
【问题讨论】:
-
我认为,您应该首先在脚本末尾使用
.quit方法,其次 - 在启动脚本之前终止此进程。即使你的脚本完成了,因为 phantomjs 仍然可以工作 -
我做了一个 ps -ef | grep phantomjs 来检查 phantomjs 是否正在运行,当脚本没有运行时它没有运行。它在脚本运行时运行,当我终止脚本时,phantomjs 进程也在终止。
标签: ruby ubuntu selenium-webdriver phantomjs capybara