RSpecテストでChromeDriverのバージョンエラーが出た時の対応

Ruby on Rails速習実践ガイドのchapter5を実装している時にエラーが発生し対応したので備忘録です。

結論

chromedriver-helperはサポート切れ。webdriversに切り替える。

環境

macOS 10.14.1 (Mojave)
Homebrew 2.2.5
Ruby on Rails 5.2.4.1

前提状況

テストの練習として、RSpec,Capybara,FactoryBotを使用したシステムテストを実装していた。

実装にあたり追加していたgemは以下。

gem 'rspec-rails', '~> 3.7'
gem 'factory_bot_rails', '~> 4.11'

エラー

Specのコードを書き終え、以下にてテストを実施すると、

bundle exec rspec spec/system/tasks_spec.rb

こちらのエラーが表示された。

Selenium::WebDriver::Error::SessionNotCreatedError:
            session not created: This version of ChromeDriver only supports Chrome version 80

ChromeDriverとChromeのバージョンが合っていなかった。

調べたところ、chromedriver-helperは2019-03-31でサポートを終了しており、webdriversを使ってくれ、的なことが書いてある。

NOTICE: This gem is out of support as of 2019-03-31 Please use https://github.com/titusfortner/webdrivers instead.

github.com

対応

記載の通りのgemがあるので、それに移行してみる。Gemfileを以下のように書き換え、インストールを実施する。

gem ‘chromedriver-helper # 削除

gem 'webdrivers' # 追加
bundle

そしてテストを再度実施すると、問題なく通った(ということはChromedriverも問題なく起動した)ことが確認された。

Finished in 11.75 seconds (files took 5.24 seconds to load)
1 example, 0 failures