RSpec で Headless Chrome を使う際に Chrome が Dev だったり Canary だったりする場合(安定版とは異なるバージョンの Chrome を使っている場合)の対処法

大原則

使用する Chrome に合った ChromeDriver を ダウンロード します。

合致するバージョンがない場合に以下を試します

結論

エラーが出たときに出てくるエラーメッセージをよく読みます。

          Webdrivers::VersionError:
            Unable to find latest point release version for 77.0.3854. You appear to be using a non-production version of Chrome. Please set `Webdrivers::Chromedriver.required_version = <desired driver version>` to a known chromedriver version: https://chromedriver.storage.googleapis.com/index.html

つまりどうするか

spec/rails_helper.rb に以下のように書きます。76.0.3809.68 の箇所の数値は、落としてきた ChromeDriver のバージョン番号を入れます。

RSpec.configure do |config|
  (省略)
  Webdrivers::Chromedriver.required_version = '76.0.3809.68'
  (省略)
end

spec/rails_helper.rb はチーム共通のファイルであってそれを修正できない場合には spec/support 配下に適当に同等の記述をしたファイルを置き、.git/info/exclude で自分のみの除外指定をすると良いです。

参考

補足

場合によっては以下のエラーが出ることがありました。

NameError:
  uninitialized constant Webdriver
Powered by はてなブログ