あまブログ

ドキドキ......ドキドキ2択クイ〜〜〜〜〜〜〜ズ!!

Railsのテスト実行時にWebdrivers::VersionError【ChromeDriver】

1. 検証環境

  • MacBook Pro (13-inch, 2020)
  • macOS Ventura 13.4.1
  • Rails 6.1.4.7
  • Ruby 3.1.0
  • rbenv 1.2.0
  • capybara 3.39.1
  • webdrivers 5.2.0
  • selenium-webdriver 4.9.1
  • Google Chrome 115.0.5790.114

2. エラー内容

Railsでテストを実行しようとしたら以下のエラーが出た。

$ rails test test/system/xxx_test.rb:31
/Users/xxx/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/chromedriver.rb:83:in `rescue in latest_point_release': Unable to find latest point release version for 115.0.5790. 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 (Webdrivers::VersionError)

省略

/Users/xxx/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/network.rb:19:in `get': Net::HTTPServerException: 404 "Not Found" with https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790 (Webdrivers::NetworkError)

ChromeDriverの115.0.5790の最新のリリースバージョンが見つからないと言っている。

3. 解決法

test/application_system_test_case.rbに以下を追記

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
+ Webdrivers::Chromedriver.required_version = "114.0.5735.90"
  省略
end

テスト実行できた。

$ rails test test/system/xxx_test.rb:31
Run options: --seed 64817

# Running:

.
[Minitest::CI] Generating test report in JUnit XML format...


Finished in 8.397903s, 0.1191 runs/s, 0.1191 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips

4. まとめ

Chromeのバージョンを確認

バージョン: 115.0.5790.114(Official Build) (x86_64)

追記(2023/8/17)

Chromeのバージョンが116.0.5845.96でテスト実行したら以下のエラーが発生。

$ rails test test/system/xxx_test.rb:31

省略

Error:
xxx:
Selenium::WebDriver::Error::SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 114
Current browser version is 116.0.5845.96 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

test/application_system_test_case.rbに追加したWebdrivers::Chromedriver.required_version = "114.0.5735.90"を削除すると直る。

WebDrivers - Update: Future of this Projectにある対応をした方が良さそう。


【参考】