titusfortner / webdrivers

Keep your Selenium WebDrivers updated automatically
MIT License
592 stars 113 forks source link

Webdrivers trying to load a Chrome version that doesn't exist #247

Closed darinwilson closed 1 year ago

darinwilson commented 1 year ago

Summary

Apologies if this is a dupe of #180 but when running CI on Travis, tests are failing with Webdrivers::VersionError: Unable to find latest point release version for 115.0.5790 - that version does not appear to exist yet (latest is 114)

Debug Info

Expected Behavior

Webdrivers should download latest available version

Actual Behavior

Test fails with the error shown above. This works locally on Apple silicon (I deleted my cached browsers under ~/.webdrivers and ran tests successfully), but not on Travis.

Thank you!

ryanb commented 1 year ago

I ran into this as well on both Travis CI and my local. I'm not sure how the version list gets updated, but it appears to be lagging behind the current version since it doesn't contain 115.

Guess we'll need to hard-code it to 114 in the meantime.

Webdrivers::Chromedriver.required_version = "114.0.5735.90"

Note from titusfortnerthis is not a long term solution as it will not work for Chrome v116. See https://github.com/titusfortner/webdrivers/issues/247#issuecomment-1648154088 for options

kceb commented 1 year ago

Related? https://developer.chrome.com/blog/chrome-for-testing/

I wonder if this should be updated to query https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints

ryanb commented 1 year ago

Related? https://developer.chrome.com/blog/chrome-for-testing/

I wonder if this should be updated to query https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints

Yes, I agree this is the issue. According to this page version 115+ is available at that JSON API and version 114 and below use the older download page.

paterlinimatias commented 1 year ago

Also failing with rails 3.1 while deploying to Heroku:

/app/vendor/bundle/ruby/3.1.0/gems/webdrivers-5.2.0/lib/webdrivers/network.rb:19:in `get': Net::HTTPClientException: 404 "Not Found" with https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790 (Webdrivers::NetworkError)

moveson commented 1 year ago

Same problem with a Rails 7.0 app running on Heroku CI.

Webdrivers::VersionError:
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
  # ./spec/system/visit_person_show_spec.rb:99:in `visit_page'
  # ./spec/system/visit_person_show_spec.rb:57:in `block (3 levels) in <top (required)>'
  # ------------------
  # --- Caused by: ---
  # Webdrivers::NetworkError:
  #   Net::HTTPClientException: 404 "Not Found" with https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790
titusfortner commented 1 year ago

PRs welcomed.

Or if you are using one of the latest versions of Selenium, you shouldn't need to require this gem any more. 😄

paterlinimatias commented 1 year ago

Or if you are using one of the latest versions of Selenium, you shouldn't need to require this gem any more. 😄

This seems to work! thanks @titusfortner 🙇‍♂️

Judahmeek commented 1 year ago

I got This version of ChromeDriver has not been tested with Chrome version 115. in the browser console when I tried using the latest version of selenium-webdriver without webdrivers.

Not necessarily a deal-breaker, but worth noting.

titusfortner commented 1 year ago

@Judahmeek check to see if you have an old driver on your system. If selenium finds something else on PATH it will use it without updating.

The warning messages will be more clear in the next release of Selenium.

yourivdlans commented 1 year ago

I tried removing the webdrivers gem and only using selenium-webdriver but it seems to be falling back to version 114.x anyway. Using the latest version of selenium-webdriver (4.10.0).

Got the following output when enabling debug logging for selenium.

Screenshot 2023-07-19 at 10 02 27
willzoltan commented 1 year ago

We came across this issue too. For those looking for explicit instructions:

We fixed this in our codebase without downgrading Webdrivers::Chromedriver.required_version by removing webdrivers from the gem file and running bundle update selenium-webdriver (since this was already included in our gem file but out of date), as per @titusfortner 's suggestion

aviralcht commented 1 year ago

I tried removing webdrivers gem and only using selenium-webdriver as per @titusfortner suggestion, however still failing with below error . Using selenium-webdriver (= 3.142.6) version

16:04:00       Selenium::WebDriver::Error::WebDriverError:
16:04:00         Unable to find chromedriver. Please download the server from
16:04:00         https://chromedriver.storage.googleapis.com/index.html and place it somewhere on your PATH.
16:04:00         More info at https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver.
16:04:00       # ./spec/e2e_helper.rb:18:in `block (2 levels) in <top (required)>'
yourivdlans commented 1 year ago

@aviralcht Does it work after upgrading the selenium-webdriver gem to the latest version?

aviralcht commented 1 year ago

@aviralcht Does it work after upgrading the selenium-webdriver gem to the latest version?

Let me try upgrading it to latest version

aviralcht commented 1 year ago

@aviralcht Does it work after upgrading the selenium-webdriver gem to the latest version?

Let me try upgrading it to latest version

Using ruby2.5.5 version, so latest compatible version of selenium-webserver is 4.0.0.

@yourivdlans / @titusfortner will this version help in replacing webdrivers gem and solving this issue?

titusfortner commented 1 year ago

@yourivdlans And it turns out that Selenium added support for the new location of v115 after Selenium 4.10 was released, so we need to wait for 4.11 to be released, and there's a few things that still need to be done before we can do that.

In the meantime, chromedriver 114 should still work just fine with Chrome 115 even if warnings are displayed.

titusfortner commented 1 year ago

Selenium and webdrivers gems both only support versions of Ruby that are not EOL. If you can't update to a supported version of Ruby, you'll likely need to monkey patch or manually put the updated driver in a directory on PATH.

titusfortner commented 1 year ago

@aviralcht it needs to be Selenium 4.6 or greater, but best experience with Selenium Manager will be using the latest version of Selenium.

yourivdlans commented 1 year ago

@titusfortner Got it, thanks!

darinwilson commented 1 year ago

Thanks, everyone for the quick replies! It looks like the TL;DR for solutions is either to:

@titusfortner Since we have two workarounds, I think we can close this, unless you think there should be code changes to webdrivers and we should keep this open?

titusfortner commented 1 year ago

I think that Selenium Manager can now do everything that this gem does (and in a better way), but there are likely going to be edge cases or things that need to be addressed.

The real problem is that the second option will break when Chrome v116 is released. By default chromedriver only works for the current and one future version. I suspect there will be people that can't/don't want to update to the latest version of Selenium who want to test Chrome v116+. For those people this gem will likely need to be updated to support it.

It probably isn't even that hard, I just don't have bandwidth right now for it...

jsocol commented 1 year ago

For a little extra context, the Chrome team updated the ChromeDriver release process, and isn't publishing new versions to the old location:

  1. The download location for ChromeDriver releases is changing.

    This applies to both the old ChromeDriver Stable + Beta downloads at https://chromedriver.storage.googleapis.com/ as well as the old Canary downloads at https://chromedriver.chromium.org/chromedriver-canary. We’ll stop publishing new downloads to these locations in the future.

    Consult the Chrome for Testing availability dashboard to learn about the new URL format. Use @puppeteer/browsers to easily download and launch browser + driver binaries, or build your own custom solution using our JSON API endpoints.

titusfortner commented 1 year ago

Yeah the new Chrome for Testing is going to make it easier to do some cool things. Selenium is eventually going to allow doing automatic browser downloads as well as automatic driver downloads based on what browser version gets passed to the Options class.

rnestler commented 1 year ago

I tried using selenium-webdriver directly, but the thing is, that we need to configure VCR to ignore requests to the webdriver URLs (see also https://blog.pablobm.com/2021/10/14/vcr-webdriver-errors.html:

VCR.configure do |c|
  driver_hosts = Webdrivers::Common.subclasses.map { |driver| URI(driver.base_url).host }
  c.ignore_hosts(*(%w[127.0.0.1 localhost] + driver_hosts))

Is there a way to do this with selenium-webdriver as well and is it even necessary to do so?

titusfortner commented 1 year ago

@rnestler starting with Selenium 4.11, we'll be getting chromedriver info/downloads from https://googlechromelabs.github.io/chrome-for-testing/

alexventuraio commented 1 year ago

We came across this issue too. For those looking for explicit instructions:

We fixed this in our codebase without downgrading Webdrivers::Chromedriver.required_version by removing webdrivers from the gem file and running bundle update selenium-webdriver (since this was already included in our gem file but out of date), as per @titusfortner 's suggestion

I did what @willzoltan said, I removed the webdrivers gem and upgraded selenium-webdriver to v4.10.0 and I started to get this error when running specs relate to the Capybara config:

Capybara.page.driver.browser.manage.window.resize_to(1440, 990)
Click here to expand the full error ```ruby ± rspec spec/system/projects/leave_project_spec.rb FFFF Failures: 1) Leave project I can leave if joined Got 0 failures and 2 other errors: 1.1) Failure/Error: Capybara.page.driver.browser.manage.window.resize_to(*window_size) ArgumentError: wrong number of arguments (given 2, expected 0..1) # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/logger.rb:51:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.37.1/lib/capybara/selenium/logger_suppressor.rb:8:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:99:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:99:in `logger' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:42:in `process_options' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.37.1/lib/capybara/selenium/driver.rb:83:in `browser' # ./spec/support/helpers/window_sizes.rb:7:in `block (2 levels) in
' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in ' 1.2) Failure/Error: def initialize(progname = 'Selenium', default_level: nil, ignored: nil, allowed: nil) default_level ||= $DEBUG || ENV.key?('DEBUG') ? :debug : :warn @logger = create_logger(progname, level: default_level) @ignored = Array(ignored) @allowed = Array(allowed) @first_warning = false ArgumentError: wrong number of arguments (given 2, expected 0..1) # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/logger.rb:51:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.37.1/lib/capybara/selenium/logger_suppressor.rb:8:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:99:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:99:in `logger' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:42:in `process_options' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.37.1/lib/capybara/selenium/driver.rb:83:in `browser' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.37.1/lib/capybara/selenium/driver.rb:161:in `save_screenshot' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.37.1/lib/capybara/session.rb:745:in `block in save_screenshot' # :90:in `tap' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.37.1/lib/capybara/session.rb:745:in `save_screenshot' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in ' ```

I updated the capybara gem to the lates version v3.39.2 and it seemed to get fixed, or a least I got another error:

± rspec spec/system/projects/leave_project_spec.rb
2023-07-20 14:24:21 INFO Selenium [:logger_info] Details on how to use and modify Selenium logger:
  https://selenium.dev/documentation/webdriver/troubleshooting/logging

2023-07-20 14:24:21 ERROR Selenium [:selenium_manager] Wrong browser/driver version
2023-07-20 14:24:22 ERROR Selenium [:selenium_manager] Wrong browser/driver version
F2023-07-20 14:24:22 ERROR Selenium [:selenium_manager] Wrong browser/driver version
2023-07-20 14:24:23 ERROR Selenium [:selenium_manager] Wrong browser/driver version
F2023-07-20 14:24:23 ERROR Selenium [:selenium_manager] Wrong browser/driver version
2023-07-20 14:24:23 ERROR Selenium [:selenium_manager] Wrong browser/driver version
F2023-07-20 14:24:23 ERROR Selenium [:selenium_manager] Wrong browser/driver version
2023-07-20 14:24:24 ERROR Selenium [:selenium_manager] Wrong browser/driver version
F

Failures:

  1) Leave project I can leave if joined
     Got 0 failures and 2 other errors:

     1.1) Failure/Error: Capybara.page.driver.browser.manage.window.resize_to(*window_size)

          Selenium::WebDriver::Error::NoSuchDriverError:
            Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"]
            Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:31:in `rescue in path'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:28:in `path'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:49:in `process_options'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:83:in `browser'
          # ./spec/support/helpers/window_sizes.rb:7:in `block (2 levels) in <main>'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'
          # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
          # ------------------
          # --- Caused by: ---
          # Selenium::WebDriver::Error::WebDriverError:
          #   Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"]
          #   Wrong browser/driver version
          #   /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in `run'

     1.2) Failure/Error: raise Error::NoSuchDriverError, "Unable to obtain #{klass::EXECUTABLE} using Selenium Manager; #{e.message}"

          Selenium::WebDriver::Error::NoSuchDriverError:
            Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"]
            Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
Click here to expand the full error trace ```js ```ruby ± rspec spec/system/projects/leave_project_spec.rb 2023-07-20 14:27:31 INFO Selenium [:logger_info] Details on how to use and modify Selenium logger: https://selenium.dev/documentation/webdriver/troubleshooting/logging 2023-07-20 14:27:31 ERROR Selenium [:selenium_manager] Wrong browser/driver version 2023-07-20 14:27:32 ERROR Selenium [:selenium_manager] Wrong browser/driver version F2023-07-20 14:27:32 ERROR Selenium [:selenium_manager] Wrong browser/driver version 2023-07-20 14:27:32 ERROR Selenium [:selenium_manager] Wrong browser/driver version F2023-07-20 14:27:33 ERROR Selenium [:selenium_manager] Wrong browser/driver version 2023-07-20 14:27:33 ERROR Selenium [:selenium_manager] Wrong browser/driver version F2023-07-20 14:27:34 ERROR Selenium [:selenium_manager] Wrong browser/driver version 2023-07-20 14:27:35 ERROR Selenium [:selenium_manager] Wrong browser/driver version F Failures: 1) Leave project I can leave if joined Got 0 failures and 2 other errors: 1.1) Failure/Error: Capybara.page.driver.browser.manage.window.resize_to(*window_size) Selenium::WebDriver::Error::NoSuchDriverError: Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:31:in `rescue in path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:28:in `path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:49:in `process_options' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:83:in `browser' # ./spec/support/helpers/window_sizes.rb:7:in `block (2 levels) in
' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in ' # ------------------ # --- Caused by: --- # Selenium::WebDriver::Error::WebDriverError: # Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] # Wrong browser/driver version # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in `run' 1.2) Failure/Error: raise Error::NoSuchDriverError, "Unable to obtain #{klass::EXECUTABLE} using Selenium Manager; #{e.message}" Selenium::WebDriver::Error::NoSuchDriverError: Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:31:in `rescue in path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:28:in `path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:49:in `process_options' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:83:in `browser' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:161:in `save_screenshot' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `block in save_screenshot' # :90:in `tap' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `save_screenshot' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in ' # ------------------ # --- Caused by: --- # Selenium::WebDriver::Error::WebDriverError: # Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] # Wrong browser/driver version # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in `run' 2) Leave project leaving on edit page redirects to show page Got 0 failures and 2 other errors: 2.1) Failure/Error: Capybara.page.driver.browser.manage.window.resize_to(*window_size) Selenium::WebDriver::Error::NoSuchDriverError: Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:31:in `rescue in path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:28:in `path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:49:in `process_options' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:83:in `browser' # ./spec/support/helpers/window_sizes.rb:7:in `block (2 levels) in
' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in ' # ------------------ # --- Caused by: --- # Selenium::WebDriver::Error::WebDriverError: # Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] # Wrong browser/driver version # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in `run' 2.2) Failure/Error: raise Error::NoSuchDriverError, "Unable to obtain #{klass::EXECUTABLE} using Selenium Manager; #{e.message}" Selenium::WebDriver::Error::NoSuchDriverError: Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:31:in `rescue in path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:28:in `path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:49:in `process_options' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:83:in `browser' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:161:in `save_screenshot' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `block in save_screenshot' # :90:in `tap' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `save_screenshot' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in ' # ------------------ # --- Caused by: --- # Selenium::WebDriver::Error::WebDriverError: # Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] # Wrong browser/driver version # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in `run' 3) Leave project I can't leave if not joined Got 0 failures and 2 other errors: 3.1) Failure/Error: Capybara.page.driver.browser.manage.window.resize_to(*window_size) Selenium::WebDriver::Error::NoSuchDriverError: Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:31:in `rescue in path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:28:in `path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:49:in `process_options' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:83:in `browser' # ./spec/support/helpers/window_sizes.rb:7:in `block (2 levels) in
' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in ' # ------------------ # --- Caused by: --- # Selenium::WebDriver::Error::WebDriverError: # Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] # Wrong browser/driver version # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in `run' 3.2) Failure/Error: raise Error::NoSuchDriverError, "Unable to obtain #{klass::EXECUTABLE} using Selenium Manager; #{e.message}" Selenium::WebDriver::Error::NoSuchDriverError: Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:31:in `rescue in path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:28:in `path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:49:in `process_options' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:83:in `browser' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:161:in `save_screenshot' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `block in save_screenshot' # :90:in `tap' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `save_screenshot' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in ' # ------------------ # --- Caused by: --- # Selenium::WebDriver::Error::WebDriverError: # Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] # Wrong browser/driver version # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in `run' 4) Leave project I can't leave if last member and submitted Got 0 failures and 2 other errors: 4.1) Failure/Error: Capybara.page.driver.browser.manage.window.resize_to(*window_size) Selenium::WebDriver::Error::NoSuchDriverError: Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:31:in `rescue in path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:28:in `path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:49:in `process_options' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:83:in `browser' # ./spec/support/helpers/window_sizes.rb:7:in `block (2 levels) in
' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in ' # ------------------ # --- Caused by: --- # Selenium::WebDriver::Error::WebDriverError: # Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] # Wrong browser/driver version # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in `run' 4.2) Failure/Error: raise Error::NoSuchDriverError, "Unable to obtain #{klass::EXECUTABLE} using Selenium Manager; #{e.message}" Selenium::WebDriver::Error::NoSuchDriverError: Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:31:in `rescue in path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver_finder.rb:28:in `path' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:49:in `process_options' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/local_driver.rb:27:in `initialize_local_driver' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/chrome/driver.rb:34:in `initialize' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver.rb:88:in `for' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:83:in `browser' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:161:in `save_screenshot' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `block in save_screenshot' # :90:in `tap' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `save_screenshot' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup' # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in ' # ------------------ # --- Caused by: --- # Selenium::WebDriver::Error::WebDriverError: # Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"] # Wrong browser/driver version # /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in `run' Finished in 4.07 seconds (files took 1.64 seconds to load) 4 examples, 4 failures Failed examples: rspec ./spec/system/projects/leave_project_spec.rb:22 # Leave project I can leave if joined rspec ./spec/system/projects/leave_project_spec.rb:45 # Leave project leaving on edit page redirects to show page rspec ./spec/system/projects/leave_project_spec.rb:68 # Leave project I can't leave if not joined rspec ./spec/system/projects/leave_project_spec.rb:74 # Leave project I can't leave if last member and submitted ``` ```

Any thoughts on what else I should do?

titusfortner commented 1 year ago

@alexventuraio that's this issue - https://github.com/teamcapybara/capybara/issues/2666 Upgrade capybara as well.

alexventuraio commented 1 year ago

@alexventuraio that's this issue - teamcapybara/capybara#2666 Upgrade capybara as well.

Thanks for you response @titusfortner as in my previous comment I had already upgraded both selenimum-webdrivers and capybara gems to their latest versions 4.10.0 and v3.39.2 respectively. But nevertheless, I still had the issue with the webdriver not found:

Selenium::WebDriver::Error::NoSuchDriverError:
              Unable to obtain chromedriver using Selenium Manager; Unsuccessful command executed: ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json"]
              Wrong browser/driver version; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location

I did what is stated in this https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location/ and I had to download and put the binary somewhere in my path.

Is that they way it should work for now having both gems up to date?

titusfortner commented 1 year ago

@alexventuraio set Selenium::WebDriver.logger.level = :debug It'll give more info about what selenium manager is seeing.

alexventuraio commented 1 year ago

@titusfortner This is what I got now:

± rspec spec/system/projects/editor/team_members/team_members_show_mode_spec.rb
2023-07-20 17:39:38 INFO Selenium [:logger_info] Details on how to use and modify Selenium logger:
  https://selenium.dev/documentation/webdriver/troubleshooting/logging

2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] applicable driver not found; attempting to install with Selenium Manager (Beta)
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Selenium Manager binary found at /Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Executing Process ["/Users/alex/.rvm/gems/ruby-3.0.6@devpost-teams/gems/selenium-webdriver-4.10.0/bin/macos/selenium-manager", "--browser", "chrome", "--output", "json", "--debug"]
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Using shell command to find out chrome version
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Running command: "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --version"
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Output: "Google Chrome 115.0.5790.98 "
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] The version of chrome is 115.0.5790.98
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Detected browser: chrome 115
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Required driver: chromedriver 1.08.115
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Running command: "chromedriver --version"
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Output: ""
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Driver URL: https://chromedriver.storage.googleapis.com/1.08.115/chromedriver_mac64_m1.zip
2023-07-20 17:39:38 DEBUG Selenium [:selenium_manager] Wrong downloaded driver: <?xml version='1.0' encoding='UTF-8'?><Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Details>No such object: chromedriver/1.08.115/chromedriver_mac64_m1.zip</Details></Error>
2023-07-20 17:39:38 ERROR Selenium [:selenium_manager] Wrong browser/driver version
...
titusfortner commented 1 year ago

1.08.115 is unexpected. @bonigarcia any ideas where that's coming from?

bonigarcia commented 1 year ago

Yes, that happened because the old version of Selenium Manager was not prepared to parse the CfT endpoints, and as a result, this strange behavior occurred. But it is consistent with the Selenium Manager logic since it is trying to parse the content of https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115 (which is no longer available as of Chrome 115) to discover the chromedriver version. A closer look at the response to that request is an XML error file like the following:

<?xml version='1.0' encoding='UTF-8'?><Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Details>No such object: chromedriver/LATEST_RELEASE_115</Details></Error>

Internally, Selenium-Manager uses a regex expression to parse the version from the response (numbers and dots), and as a result, the "version" 1.08.115 is obtained. Which, obviously, is incorrect. Eventually, there is an error trying to find that incorrect version.

The solution is to release Selenium 4.11.0 with the new version of Selenium Manager, which already uses the CfT endpoints for Chrome/chromedriver version discovery.

titusfortner commented 1 year ago

Ah, bad regexp with the new Chrome versioning makes sense. It must be just ARM ones if not everyone is affected?

Either way, we're diligently working to get the last couple things done for the 4.11 release.

bonigarcia commented 1 year ago

It must be just ARM ones if not everyone is affected?

I'm afraid it happens for every platform, since what is failing that chromedriver 115 (all releases) are not published using the former metadata (LATEST_X) but the CfT endpoints.

titusfortner commented 1 year ago

Then why is it working for some people to use Selenium v4.10? I'm expecting it to see Chrome v115 and use chromedriver v114 right now.

jsocol commented 1 year ago

@titusfortner (if there's a better thread on the selenium repo, I can absolutely go there)

starting with Selenium 4.11, we'll be getting chromedriver info/downloads from https://googlechromelabs.github.io/chrome-for-testing/

is there any chance of this being backported to a version with Ruby 2.7 support? I suppose that would have to be 4.9.0.1, since 4.9.0->4.9.1 is when 2.x support was dropped. I'm trying to get a sense of when we might expect consumers on 2.7 to start encountering issues to help prioritize different updates

bonigarcia commented 1 year ago

Then why is it working for some people to use Selenium v4.10?

I think it worked since in some Selenium Manager release (not sure starting in which version, but I'm pretty sure it is available in 4.10.0), there was a (5) retries mechanism to use lower versions than a given version when one failed. This way, when failing to resolve chromedriver 115, it will try 114 (and if it continues failing, 113, 112, and 110).

titusfortner commented 1 year ago

is there any chance of this being backported to a version with Ruby 2.7 support?

It's unlikely. The open source devs in this ecosystem are pretty comfortable limiting our energies to supported versions of Ruby. I suppose if there was enough interest we could figure out a bounty for it.

dougc84 commented 1 year ago

It's unlikely.

2.7.8 isn't EOL until end of the year.

titusfortner commented 1 year ago

Eol for 2.7 was in March https://www.ruby-lang.org/en/downloads/branches/

nimeshpande commented 1 year ago

Hi,

.net issue resolved by using the overload method setUpDriver which accepts the url and binarypath as arguments.

We provided the lastest url for chrome 115 version and local folder path in binary. (Tactical solution)

titusfortner commented 1 year ago

So there are multiple different issues

  1. webdrivers gem is no longer looking in the right spot for chromedriver v115 (fixable if we don't deprecate this gem)
  2. you can set the required version for chromedriver to v114 and it will work for Chrome v115 (but will break for Chrome v116)
  3. the current chromedriver v115 only works with Chrome for Testing, not the default installed version of Chrome. So you need to set the binary location of the browser even if you have the right driver (Google is fixing - https://bugs.chromium.org/p/chromium/issues/detail?id=1466427)

(Updating to Selenium 4.10 and removing this gem is essentially doing the same as point 2)

This PR will fix most of this in Selenium 4.11 which we're hoping to get released in the next day or so - https://github.com/SeleniumHQ/selenium/pull/12398

Near future options

  1. You can update to Selenium 4.11 and remove webdrivers gem
  2. If you can't update to latest Selenium (including Ruby 3+), you can set required chromedriver version to 114 and disable build check and hope for the best with all future browser updates.

Longer term options

  1. Webdrivers is deprecated and everyone updates to the latest version of Selenium because Selenium itself will be automatically managing both browsers and drivers, which is pretty exciting.
  2. Webdrivers updates to look for chromedriver v115+ in the new location. (If someone wants to PR something, I'll merge it short term). This would still require Ruby 3.x & Selenium 4.x.
  3. Webdrivers wraps the Selenium Manager functionality in a less restrictive way. I'd have to split out selenium-manager features and put it in its own gem with less restrictive Selenium/Ruby version requirements. This is probably better than the second option for a number of reasons, but I'm not sure it is worth it.

If you can't update to latest Selenium and/or Ruby 3.x and want a better solution from this gem, can you give a ☹️ reaction to this comment?

dtoms commented 1 year ago

I'm stuck on older ruby for several more months and my planned, but not yet built, solution is simply going to be to use the https://developer.chrome.com/blog/chrome-for-testing/#how-can-i-get-chrome-for-testing-binaries npx commands to get the latest browser and driver, as a poor man's webdrivers solution.

jrochkind commented 1 year ago

I am not totally sure why I just started encountering this problem today (same error message as at top), when I haven't updated any gem versions lately, and the new Chrome version that triggered things has been out for a week or so? I guess something changed in the Github Actions CI environment, where I am now encountering the error -- perhaps caching.

I have read this whole thread trying to understand what's going on, and now understand... some things.

But trying to remove webdrivers from my Gemfile, with:

When running tests locally on that MacOS box, all of my selenium/chrome-using tests raise this error and do not work:

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

Right, indeed I have a standard desktop Chrome installed at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome, and it is the latest self-updating version, as per usual....

I don't really understand where it's getting what version of "ChromeDriver" that wants chrome 103....

This is perhaps point 3 that @titusfortner mentioned? Or maybe not?

  1. the current chromedriver v115 only works with Chrome for Testing, not the default installed version of Chrome. So you need to set the binary location of the browser even if you have the right driver (Google is fixing - https://bugs.chromium.org/p/chromium/issues/detail?id=1466427)

I am not sure? I am having trouble understanding if/how that applies to my case and what to do about it if so.

I guess the temporary fix is to set Webdrivers::Chromedriver.required_version = "114.0.5735.90", and hope that a more permanent fix comes out before that stops working?

Very odd that this is all blowing up in apparently several different ways all at once. Thank you for your work on webdrivers that has kept things working without me having to think about it for so long -- but now I'm really stymied, and not sure how to get unstuck.

UPDATE

OKAY, after googling, I realized I had an old brew install of chromedriver.... with webdrivers it was ignored and didn't cause a problem, but without it, selenium was using that old one and causing a problem.

brew remove chromedriver was necessary.

After that, running my tests on my MacOS system as above (selenium-webdriver 4.10.0, no webdrivers gem) , I get this message in console:

WARN Selenium [:selenium_manager] Error getting version of chromedriver 115. Retrying with chromedriver 114 (attempt 1/5)

I don't really understand what's going on there or if it's expected according to above analysis... but despite the warning it currently works and my tests pass again.

titusfortner commented 1 year ago

@jrochkind

TL/DR - update to Selenium 4.11 when it comes out and everything webdrivers has done should "just work" for 99% of users.

If Selenium finds a driver on PATH it assumes that's the one you want to use, and (for now/probably until Selenium 5) it will not automatically remediate. Selenium Manager is still "opt-in." It will only do things if what you explicitly request is wrong, or the code would otherwise fail.

WARN Selenium [:selenium_manager] Error getting version of chromedriver 115. Retrying with chromedriver 114 (attempt 1/5)

This is because the code to look in the Chrome for Testing location for drivers (necessary for 115) was not added in time for Selenium 4.10. 😞 Thankfully chromedriver 114 will still works for Chrome v115, but it will break when Chrome v116 comes out.

I am having trouble understanding if/how that applies to my case

No. It would be an issue if you manually downloaded chromedriver v115 and tried to use it. Because Selenium 4.10 ends up using chromedriver v114 this isn't a problem.

Selenium 4.11 (out soon, I promise, blame the Java code) will:

So sorry for this brief period of things being in a bad place. If CfT came out one version later, or if we'd had a little more bandwidth last month, Selenium would have had better errors/warnings for many of these problems. ☹️
But it's made it really easy to implement the final two bullets there (which were just added and tested over the weekend).

Things will be much better soon. Thank you!

mascolim commented 1 year ago

Updating to Ruby 3 is going to take awhile for my projects. I'd like to migrate them gracefully and prevent test failures once chrome 116 releases.

I've forked Webdrivers version 4.5.0 which was working well for selenium 3 and updated the Chromedriver class to use the new endpoints for fetching the latest point release and fetching the download url. The System class also needed an update as the zip archive now has a parent directory to the chromedriver file.

Others in a similar situation might find this useful.

https://github.com/mascolim/webdrivers/tree/jsonendpoints

dtoms commented 1 year ago

@mascolim Thanks for the option. How does your fork account for

the current chromedriver v115 only works with Chrome for Testing, not the default installed version of Chrome. So you need to set the binary location of the browser even if you have the right driver (Google is fixing - https://bugs.chromium.org/p/chromium/issues/detail?id=1466427)

It may be fetching v115 now, but is that working for you on Chrome? If so, I am confused

mascolim commented 1 year ago

@dtoms It may be because I'm running in Windows? This is one of the replies in the chromium bug thread.

It turns out Windows is not actually affected by this specific issue, as it hard-codes "chrome.exe" (c.f. https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:chrome/common/chrome_constants.cc;l=71;drc=a328097ef1d47f51e76917b80110863037f4f744).

But we may want to update it anyway for consistency.

tested with chrome 115.0.5790.110. chromedriver 115.0.5790.102 (win32. This is because Webdrivers 4.5.0 only picked up 32 bit versions so I've ported the same behavior. I don't know if this could influence behavior too). selenium-webdriver 3.142.7 jruby 9.2.0.0(Ruby: 2.5.0)

harssh commented 1 year ago

Thank you to all the contributors of this gem. It helped run our tests. Moving to updated selenium-webdriver and removing this gem fixed above issue.

titusfortner commented 1 year ago

I took a stab at breaking out the code for Selenium Manager, that could let us release that as a separate gem, and webdrivers 6 could then be a thin wrapper of selenium-manager.gem. Because that code would essentially only be one class, it should be easy enough to make it more flexible with older versions.