它在本地运行(未指定driver_path),但不在Heroku上运行.
码:
Selenium::WebDriver::Chrome.driver_path = ENV['GOOGLE_CHROME_SHIM']
browser = Watir::Browser.new :chrome
Run Code Online (Sandbox Code Playgroud)
我在heroku rails控制台中确认了以下值
ENV['GOOGLE_CHROME_BIN'] => "/app/.apt/opt/google/chrome/chrome"
ENV['GOOGLE_CHROME_SHIM'] => "/app/.apt/usr/bin/google-chrome-stable"
Run Code Online (Sandbox Code Playgroud)
已安装的Buildpacks:
https://github.com/heroku/heroku-buildpack-chromedriver
https://github.com/heroku/heroku-buildpack-google-chrome
Run Code Online (Sandbox Code Playgroud)
当前错误:
Selenium :: WebDriver :: Error :: WebDriverError:无法连接到chromedriver 127.0.0.1:9515
搜索unable to connect to chromedriver 127.0.0.1:9515SO返回一堆结果,但没有提到heroku.
我考虑过phantomjs.其他人在这里工作, 使用带有Heroku Rails Unicorn堆栈的无头浏览器
但它被弃用了.在本地运行时出现以下错误.
不赞成使用PhantomJS的Selenium支持.请改用无头Chrome/Firefox或HTMLUnit.
为了透明,我也尝试了以下内容.
更改 browser = Watir::Browser.new :chrome
至 browser = Watir::Browser.new :chrome, headless: true
虽然我没想到这会起作用.
删除:
https://github.com/heroku/heroku-buildpack-chromedriver
添加:
https://github.com/heroku/heroku-buildpack-xvfb-google-chrome.
添加headless宝石.
并运行watirgem页面中给出的以下脚本,http://watir.com/guides/headless/.
require 'watir'
require 'headless'
headless …Run Code Online (Sandbox Code Playgroud)