GitHub Actions で RSpec (Capybara) を実行するための driven_by の options 引数の設定

現象

次のようなエラーが出る場合の対処法です。

            Selenium::WebDriver::Error::UnknownError:
              unknown error: Chrome failed to start: exited abnormally.
                (unknown error: DevToolsActivePort file doesn't exist)
                (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

結論

options 引数に以下の2つを追加します。

  • --disable-dev-sim-usage
  • --no-sandbox

具体的には、spec/rails_helper.rb に以下のように記述することになるでしょう。なお、options 引数の追加においては、以下のようにブロックで追加しないと deprecated と怒られます。

RSpec.configure do |config|
(省略)
      driven_by([:selenium, screen_size: [1400, 1400], using: :headless_chrome) do |options|
        options.add_argument('--disable-dev-sim-usage')
        options.add_argument('--no-sandbox')
      end
(省略)
end
Powered by はてなブログ