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

4
我正在尝试在Heroku上使用Ruby运行无头Chrome。我已经安装了buildpacks https://github.com/heroku/heroku-buildpack-google-chrome/https://github.com/heroku/heroku-buildpack-chromedriver 并设置了Selenium driver_path到正确的位置(在设置Selenium driver path之前,我会得到cannot find Chrome binary,设置为由buildpack设置的GOOGLE_CHROME_BIN变量后,我会得到unable to connect to chromedriver)。
当我尝试使用Watir :: Browser.new:chromeWatir :: Browser.new:chrome,headless:true启动Selenium / Watir时,我会得到Selenium :: WebDriver :: Error :: WebDriverError:unable to connect to chromedriver 127.0.0.1:9516
欢迎提出任何建议。

ChromeDriver 实际上是否在路径中?您可以打开终端或命令行提示符并运行 "chromedriver -v" 来获取响应吗? - Chuck van der Linden
2个回答

4
由于配置错误和传递正确的选项哈希到Watir::Browser.new,我们也遇到了同样的问题。我们使用的是watir (6.10.3)selenium-webdriver (~> 3.4, >= 3.4.1)ruby '2.4.0'
为了让所有东西在Heroku上正常工作,我们添加了以下构建包: 为了成功初始化浏览器,您需要通过选项哈希传递chromedriver二进制文件的路径。heroku-buildpack-chromedriver提供了一个名为GOOGLE_CHROME_SHIM的环境变量来搜索bin路径。最终,既可在本地工作,也可在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"

2

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