herokuでの実行環境におい、seleniumが動かなくて困った時に解決した方法です。
herokuのlogを見ていたらバイナリーがどうたらこうたらいっていたので、
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('GOOGLECHROMESHIM', nil)
)
上のようにバイナリーを設定しました。
すると実行環境でも動かすことができました!
これされ覚えておけば大丈夫、Chrome Optionsの設定
options.add_argument("--no-sandbox")
Chromeの保護機能を無効化
*危険なサイトやダウンロード保護機能
options.add_argument("--headless")
headlessモードを使用
options.add_argument("--disable-gpu")
headlessモードで暫定的に必要
*もうすぐ不要になる
options.add_argument("--disable-extensions")
chromeの拡張機能を全部無効にする。
*ユーザースクリプトも無効
options.add_argument('--proxy-server="direct://"')
Proxy経由ではなく直接接続する
options.addargument("--proxy-bypass-list=")
すべてのホスト名
options.add_argument("--start-maximized"
windowのサイズを最大化する
options.add_argument('--lang=ja')
日本語使用