【23.9.27】”現場で使える Ruby on Rails 5速習実践ガイド” Rspec実行時のエラー “Selenium::WebDriver::Error::SessionNotCreatedError:session not created: This version of ChromeDriver only supports Chrome version” の解決

お久しぶりです。

Rails学習のため本に従って作業していると、タイトルのエラーに遭遇し解決に苦労したのでその解決方法について書き残しておきます。有名なエラーっぽくて「現場 rails rspec エラー」とかで検索すると結構引っかかるのですが、色々見ることでようやく解決したのでこちらの記事で何したかをまとめておこうと思います。

ちなみに自分はmacで、本は21年4月5日に発行された電子版v9.01の書籍みたいです。参考までに。

エラーについて

書籍のchapter5-8-4でSpecを実行するときに遭遇するエラーです。

...
Got 0 failures and 2 other errors:
  1.1) Failure/Error: visit login_path
  Selenium::WebDriver::Error::SessionNotCreatedError:session not created: This version of ChromeDriver only supports Chrome version 114
    Current browser version is 117.0.5938.92 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

macに入っているGoogle Chromeのバージョンが、gemとして入れたchromedriver-helperのサポートするバージョンの対象外であることが原因で発生するエラーのようで、一般的な対処としては、Google Chromeのダウングレードをすることや今使っているGoogle Chromeをサポートするようなchromedriver-helperをインストールすることなどが挙げられるようです。

対処

バージョンを合わせることでも対応可能なようですが、今回chromedriver-helperを使わない方法で対処しました。

chromedriver-helperのgithubの情報を参照する限り、2019年にサポートが終了しているようです。

GitHub - flavorjones/chromedriver-helper: Deprecated in favor of the `webdrivers` gem.
Deprecated in favor of the `webdrivers` gem. Contribute to flavorjones/chromedriver-helper development by creating an account on GitHub.

推奨する移行先はwebdriversのようですね。

ただ今回はGemfileにあらかじめ記載されていた「selenium-webdriver」だけで対応できるようなので、webdriversは使用しませんでした。

gemに必要な情報を載せる

chromedriver-helperをGemfileからコメントアウトなどで取り除きます。

gem 'capybara', '>= 2.15'
gem 'selenium-webdriver'
# 不要なので消す gem 'chromedriver-helper'

その後は下記を実行して、gemをインストールします。

bundle
# 不安なら今回関連する2つのgemも再度インストールする
bundle update selenium-webdriver capybara

chromedriverを落とす

改めてrspecを実行すると、エラーが変わっています。

Selenium::WebDriver::Error::WebDriverError:
              Unable to find chromedriver. Please download the server from
              https://chromedriver.storage.googleapis.com/index.html and place it somewhere on your PATH.

chromedriverが無いのでURL先から希望するバージョンのものを落としてくれ、と言われていますが、今回はhomebrewで落とします。無い場合は入れておくと良いです。

Homebrewのインストール - Qiita
Homebrewとは?最近ではOSや言語毎にパケージマネージャとよばれるツールが提供され、ソフトウエアや拡張機能のインストールはパッケージマネージャを利用して行うことが一般的になってきています。H…
# homebrew更新
brew update

# インストールを実行すると、既に存在していると言われたので一度アンインストールした
brew install chromedriver
   Warning: Not upgrading chromedriver, the latest version is already installed
   current: ~/Desktop/study/genba_ruby_on_rails/3_chapter/taskleaf

# 一度消す
brew uninstall chromedriver 

# 改めて
brew install chromedriver
   
   ==> Downloading https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/117.0.5938.92/mac-x64/chromedriver-mac-x64.zip
   Already downloaded: /Users/skoni/Library/Caches/Homebrew/downloads/747fccd14a664d1d5f973f508e67fad1efd641c2a3059831cd47deb81c28aaa3--chromedriver-mac-x64.zip
   ==> Installing Cask chromedriver
   ==> Linking Binary 'chromedriver' to '/usr/local/bin/chromedriver'
   🍺  chromedriver was successfully installed!

macの設定を調整する

こちらで改めてrspecを実行すると、今度はmacから怒られました。

一度キャンセルし、macのシステム環境設定 > セキュリティとプライバシー > 一般タブで、ダウンロードしたアプリケーションの実行許可を「このまま許可」とします。

許可後に、再度rspecを実行。

うまくいきました!

参考

サポートが終了したchromedriver-helperからwebdrivers gemに移行する手順 - Qiita
はじめにRailsのSystem TestやFeature Spec、System SpecとChromeを組み合わせて動かしたい場合は、ChromeDriverのインストールが別途必要になります。…
Rubyでseleniumを使おうとして導入でつまずいた件 - Qiita
はじめにこの記事は導入時の簡単なトラブルシュートのメモになります。つい先日、社会人デビューし配属が決まりました。そこでseleniumを使いそうだなぁという勝手なイメージと、そう言えば名前は…
RSpec+capybara+selenium+chromedriverでブラウザ自動テスト!! - Qiita
#はじめに仕事でブラウザテストやったので自作アプリにも入れておきますううううう。#環境ruby 2.5.0Rails 5.0.7.2rspec-rails 3.9.0capybara 3…
RSpecを実行するとWebdrivers::VersionErrorが発生する場合の対処方法 - Qiita
発生する問題RSpecのテストを実行すると以下のようなエラーが発生する。Webdrivers::VersionError: Unable to find latest point release…
seleniumを使用しようとしたら、「"chromedriver"は開発元を検証できないため開けません。」と言われた - Qiita
はじめに掲題通りだが、seleniumを導入し実行しようとしたら、「開発元を検証できないため開けません」と言われてたので、その対応時の備忘録になります。環境$ sw_versProductN…

タイトルとURLをコピーしました