Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chrome115以上を使用している場合にWebdrivers::VersionErrorが発生しない様にする。 #6982

Conversation

sochi419
Copy link
Contributor

@sochi419 sochi419 commented Oct 21, 2023

Issue

概要

ローカルでインストールされているChromeが115以上の場合システムテストを実行すると、Webdrivers::VersionErrorが発生する。

Webdrivers::VersionErrorエラー全文
😄 ~/fjord/fjord_page/bootcamp bundle exec rails test test/system/announcements_test.rb:15
/Users/ochiaisoushi/.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 118.0.5993. 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)
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/chromedriver.rb:65:in `latest_point_release'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/chromedriver.rb:39:in `block in latest_version'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/common.rb:166:in `with_cache'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/chromedriver.rb:37:in `latest_version'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/common.rb:122:in `download_version'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/common.rb:126:in `download_url'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/common.rb:98:in `update'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/chromedriver.rb:156:in `block in <main>'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/actionpack-6.1.4.7/lib/action_dispatch/system_testing/browser.rb:37:in `preload'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/actionpack-6.1.4.7/lib/action_dispatch/system_testing/driver.rb:15:in `initialize'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/actionpack-6.1.4.7/lib/action_dispatch/system_test_case.rb:157:in `new'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/actionpack-6.1.4.7/lib/action_dispatch/system_test_case.rb:157:in `driven_by'
        from /Users/ochiaisoushi/fjord/fjord_page/bootcamp/test/application_system_test_case.rb:24:in `<class:ApplicationSystemTestCase>'
        from /Users/ochiaisoushi/fjord/fjord_page/bootcamp/test/application_system_test_case.rb:12:in `<main>'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /Users/ochiaisoushi/fjord/fjord_page/bootcamp/test/system/announcements_test.rb:3:in `<main>'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/test_unit/runner.rb:50:in `block in load_tests'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/test_unit/runner.rb:50:in `each'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/test_unit/runner.rb:50:in `load_tests'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/test_unit/runner.rb:39:in `run'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/commands/test/test_command.rb:33:in `perform'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/command/base.rb:69:in `perform'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/command.rb:48:in `invoke'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/commands.rb:18:in `<main>'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from bin/rails:4:in `<main>'
/Users/ochiaisoushi/.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_118.0.5993 (Webdrivers::NetworkError)
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/chromedriver.rb:66:in `latest_point_release'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/chromedriver.rb:39:in `block in latest_version'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/common.rb:166:in `with_cache'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/chromedriver.rb:37:in `latest_version'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/common.rb:122:in `download_version'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/common.rb:126:in `download_url'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/common.rb:98:in `update'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/chromedriver.rb:156:in `block in <main>'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/actionpack-6.1.4.7/lib/action_dispatch/system_testing/browser.rb:37:in `preload'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/actionpack-6.1.4.7/lib/action_dispatch/system_testing/driver.rb:15:in `initialize'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/actionpack-6.1.4.7/lib/action_dispatch/system_test_case.rb:157:in `new'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/actionpack-6.1.4.7/lib/action_dispatch/system_test_case.rb:157:in `driven_by'
        from /Users/ochiaisoushi/fjord/fjord_page/bootcamp/test/application_system_test_case.rb:24:in `<class:ApplicationSystemTestCase>'
        from /Users/ochiaisoushi/fjord/fjord_page/bootcamp/test/application_system_test_case.rb:12:in `<main>'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /Users/ochiaisoushi/fjord/fjord_page/bootcamp/test/system/announcements_test.rb:3:in `<main>'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/test_unit/runner.rb:50:in `block in load_tests'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/test_unit/runner.rb:50:in `each'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/test_unit/runner.rb:50:in `load_tests'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/test_unit/runner.rb:39:in `run'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/commands/test/test_command.rb:33:in `perform'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/command/base.rb:69:in `perform'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/command.rb:48:in `invoke'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/railties-6.1.4.7/lib/rails/commands.rb:18:in `<main>'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /Users/ochiaisoushi/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from bin/rails:4:in `<main>'

原因

  • chromedriverの管理方針がバージョン115から変わった
  • webdrivers gemがこれに対応していない
  • ローカルマシンにインストールされているChromeが115以上になるとこの問題が発生する

対処方法

最新版のselenium-webdriverにはドライバの管理機能が組み込まれており、これに切り替えることで問題が解決する。

参考記事

rails/rails#48847
https://qiita.com/jnchito/items/f994dd3ac2cdc39bff8c

変更確認方法

(前提) chrome driverのversionが115以上であること

  1. ローカル環境のmainブランチで任意のシステムテストを実行して、Webdrivers::VersionErrorが発生することを確認する。
  2. bug/webdrivers_version_error_occurs_when_using_above_chrome_115をローカルに取り込んで、ブランチを切り替える。
  3. ローカル環境で任意のシステムテストを実行して、Webdrivers::VersionErrorが発生しないことを確認する。

Screenshot

  • 変更前
    image

  • 変更後
    image

@sochi419 sochi419 marked this pull request as ready for review October 22, 2023 01:38
@sochi419
Copy link
Contributor Author

@dowdiness

お疲れ様です。
お手数ですが、こちらのレビューをお願いしてもよろしいでしょうか?

Copy link
Contributor

@dowdiness dowdiness left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sochi419
動作確認しましたー!
問題なくテストが動くようになっていると思います。
変更したコードにも問題ないと思うのでapproveします。

@sochi419
Copy link
Contributor Author

@dowdiness

確認ありがとうございました!

@komagata

受講生のレビューが終わりましたので、確認よろしくお願いします🙏

Copy link
Member

@komagata komagata left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

確認させて頂きました。OKです〜🙆‍♂️

@komagata komagata merged commit 4f3b681 into main Nov 1, 2023
15 checks passed
@komagata komagata deleted the bug/webdrivers_version_error_occurs_when_using_above_chrome_115 branch November 1, 2023 05:52
@github-actions github-actions bot mentioned this pull request Nov 1, 2023
18 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants