#エラー内容
seleniumをheroku上で使用していたがエラーが発生するようになった。$ heroku logsで確認すると、**"Webdrivers::BrowserNotFound (Failed to find Chrome binary.):"**が発生していた。
#原因
webdriversがChromeのバージョンを取得するために使用していたChromeのShimが、サーバーを立ち上げる挙動に変わってしまったことが原因のようです。
#解決方法
Selenium::WebDriver::Chrome.pathをshimではなくbinaryへ直接向ける。
#サンプルコード
gemfile
gem 'selenium-webdriver'
gem 'webdrivers'
require 'selenium-webdriver'
require 'webdrivers'
Selenium::WebDriver::Chrome.path = ENV.fetch('GOOGLE_CHROME_BIN', nil)
options = Selenium::WebDriver::Chrome::Options.new(
prefs: { 'profile.default_content_setting_values.notifications': 2 },
binary: ENV.fetch('GOOGLE_CHROME_SHIM', nil)
)
driver = Selenium::WebDriver.for :chrome, options: options
##herokuのbuildpack
$ heroku buildpacks:add https://github.com/heroku/heroku-buildpack-google-chrome
$ heroku buildpacks:add https://github.com/heroku/heroku-buildpack-chromedriver
#参考
HerokuでSeleniumとHeadless Chromeを動かしたい
Shuhei Kitagawaさんのブログ記事に助けられました。たいへん感謝しています。