Ruby / Heroku Selenium :: WebDriver :: Error :: WebDriverError:无法连接到chromedriver 127.0.0.1:9516

时间:2017-08-30 03:10:46

标签: selenium heroku watir

我试图用红宝石在Heroku上运行无头镀铬。我已经安装了构建包https://github.com/heroku/heroku-buildpack-google-chrome/https://github.com/heroku/heroku-buildpack-chromedriver,并将Selenium driver_path设置为正确的位置(我已经在设置Selenium驱动程序路径之前检查了这一点{{1}将它设置为buildpack设置的cannot find Chrome binary变量后,我得到GOOGLE_CHROME_BIN)。

当我尝试使用unable to connect to chromedriverWatir::Browser.new :chrome启动Selenium / Watir时,我得到Watir::Browser.new :chrome, headless:true

感谢任何建议

2 个答案:

答案 0 :(得分:3)

由于配置错误的组合以及将正确的选项哈希传递给Watir::Browser.new,我们也遇到了同样的问题。我们正在使用watir (6.10.3)selenium-webdriver (~> 3.4, >= 3.4.1)ruby '2.4.0'

为了让所有工作都在Heroku上,我们添加了以下构建包:

要成功初始化浏览器,您需要在选项哈希中将路径传递给chromedriver bin。 heroku-buildpack-chromedriver为bin搜索路径提供了一个环境变量GOOGLE_CHROME_SHIM。最后,本地和Heroku上运行的代码如下所示:

opts = {
    headless: true
}

if (chrome_bin = ENV.fetch('GOOGLE_CHROME_SHIM', nil))
  opts.merge!( options: {binary: chrome_bin})
end 

browser = Watir::Browser.new :chrome, opts
browser.goto "your url"

答案 1 :(得分:1)

如果其他人偶然发现了这一点,那么这里有一个很好的例子:https://github.com/jormon/minimal-chrome-on-heroku