はじめに
Rspecの復習がしたくて久しぶりにTaskleafアプリを開いてテストを走らせたら、エラーが出たので、webdriversに移行した経緯を記事にしました。
発生したエラー
テスト走らせると、このようなエラーが長々と出ました。
> bundle exec rspec spec/system/tasks_spec.rb +master
2021-10-23 15:09:47 WARN Selenium [DEPRECATION] Selenium::WebDriver::Chrome#driver_path= is deprecated. Use Selenium::WebDriver::Chrome::Service#driver_path= instead.
Capybara starting Puma...
* Version 3.12.6 , codename: Llamas in Pajamas
* Min threads: 0, max threads: 4
* Listening on tcp://127.0.0.1:57495
FFFFF
Failures:
1) タスク管理機能 一覧表示機能 ユーザーAがログインしているとき behaves like ユーザーAが作成したタスクが表示される
Got 0 failures and 2 other errors:
Shared Example Group: "ユーザーAが作成したタスクが表示される" called from ./spec/system/tasks_spec.rb:23
1.1) Failure/Error: visit login_path
Selenium::WebDriver::Error::SessionNotCreatedError:
session not created: This version of ChromeDriver only supports Chrome version 92
Current browser version is 95.0.4638.54 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
コードを紐解く
この部分を見てみると、ChromeDriver
に問題があることが推測できます。
Selenium::WebDriver::Error::SessionNotCreatedError:
session not created: This version of ChromeDriver only supports Chrome version 92
Current browser version is 95.0.4638.54 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
gem chromedriver-helperについて
そもそもこのgemですが、調べてみたら2019年3月31日にサポートが終了していました。
そのようなgemはなるべく使いたくないですよね。
NOTICE: Ending support for this gem · Issue #83 · flavorjones/chromedriver-helper
Ahoy, Rubyists. This issue, related to #80 (and through that, to #78 and #79), intends to: Give public notice of ending support for chromedriver-helper, and dep...
webdriversに切り替え
Gemfileの内容を書き換えましょう。
- gem 'chromedriver-helper'
+ gem 'webdrivers'
$ bundle install
インストールしたら再度テストを走らせます。
> bundle exec rspec spec/system/tasks_spec.rb feature
Capybara starting Puma...
* Version 3.12.6 , codename: Llamas in Pajamas
* Min threads: 0, max threads: 4
* Listening on tcp://127.0.0.1:57897
.....
Finished in 8.42 seconds (files took 2.39 seconds to load)
5 examples, 0 failures
今度はうまくいきました。
参考記事
サポートが終了したchromedriver-helperからwebdrivers gemに移行する手順 - Qiita
はじめにRailsのSystem TestやFeature Spec、System SpecとChromeを組み合わせて動かしたい場合は、ChromeDriverのインストールが別途必要になります。…
コメント