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|
(省略)
  config.before(:each, type: :system) do |example|
    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
(省略)
end
Powered by はてなブログ