system spec を動かそうとしたら、以下のエラーが起きました。
Net::HTTPServerException: 404 "Not Found" with https://chromedriver.storage.googleapis.com/LATEST_RELEASE_118.0.5993 (Webdrivers::NetworkError)
これは以下の Qiita 記事に従って gem webdrivers
をコメントアウトしたら消えました。なぜなのかは分かりません。。
その後、次に以下のエラーが出るようになりました。
Error:
QuotesTest#test_Updating_a_quote:
ArgumentError: unknown keyword: :capabilities
test/system/quotes_test.rb:38:in `block in <class:QuotesTest>'
Error:
QuotesTest#test_Updating_a_quote:
ArgumentError: unknown keyword: :capabilities
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.16.0/lib/selenium/webdriver/common/driver.rb:315:in `create_bridge'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.16.0/lib/selenium/webdriver/common/driver.rb:74:in `initialize'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.16.0/lib/selenium/webdriver/chrome/driver.rb:35:in `initialize'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.16.0/lib/selenium/webdriver/common/driver.rb:47:in `new'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.16.0/lib/selenium/webdriver/common/driver.rb:47:in `for'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/selenium-webdriver-4.16.0/lib/selenium/webdriver.rb:89:in `for'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:83:in `browser'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.2.2/lib/action_dispatch/system_testing/driver.rb:64:in `block in register_selenium'
<internal:kernel>:90:in `tap'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.2.2/lib/action_dispatch/system_testing/driver.rb:63:in `register_selenium'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.2.2/lib/action_dispatch/system_testing/driver.rb:49:in `block in register'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/capybara-3.39.2/lib/capybara/session.rb:105:in `driver'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/capybara-3.39.2/lib/capybara/session.rb:91:in `initialize'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/capybara-3.39.2/lib/capybara.rb:421:in `new'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/capybara-3.39.2/lib/capybara.rb:421:in `block in session_pool'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/capybara-3.39.2/lib/capybara.rb:317:in `current_session'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/capybara-3.39.2/lib/capybara/dsl.rb:46:in `page'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.2.2/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:99:in `save_image'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.2.2/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:36:in `take_screenshot'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.2.2/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:45:in `take_failed_screenshot'
/Users/sakaishun/Desktop/projects/hotwire-example-template/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.2.2/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb:8:in `before_teardown'
これは、selenium-webdriver のバージョンが低かったことが原因なようで、以下の記事に従って、gem 'selenium-webdriver', '4.9.0'
でバージョンを指定して bundle install し直しました。
今度はまた別のエラーが発生しました。
Error:
QuotesTest#test_Creating_a_new_quote:
Selenium::WebDriver::Error::SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 97
Current browser version is 118.0.5993.117 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
test/system/quotes_test.rb:11:in `block in <class:QuotesTest>'
ChromeDriver と Chrome のバージョンが合っていないことが原因のようでした。chromedriver のバージョンが 97 と古いので、brew upgrade chromedriver
をして chromedriver のバージョンを上げました。
今度は chromedriver のバージョンが最新の 120 で、Chrome のバージョンが 118 で少し古くエラーを起こしました。
Error:
QuotesTest#test_Updating_a_quote:
Selenium::WebDriver::Error::SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 120
Current browser version is 118.0.5993.117 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
test/system/quotes_test.rb:38:in `block in <class:QuotesTest>'
今度は、使っている Chrome のバージョンを上げました。
そうしたら、System Spec が動きました。(めでたし)