diff --git a/lib/capybara/selenium/driver.rb b/lib/capybara/selenium/driver.rb index 0aaa5da1f..b77df19e7 100644 --- a/lib/capybara/selenium/driver.rb +++ b/lib/capybara/selenium/driver.rb @@ -264,6 +264,10 @@ def no_such_window_error private + def selenium_4? + defined?(Selenium::WebDriver::VERSION) && (Selenium::WebDriver::VERSION.to_f >= 4) + end + def native_args(args) args.map { |arg| arg.is_a?(Capybara::Selenium::Node) ? arg.native : arg } end @@ -278,15 +282,23 @@ def clear_browser_state end def clear_browser_state_errors - ::Selenium::WebDriver.logger.suppress_deprecations do - [Selenium::WebDriver::Error::UnhandledError, Selenium::WebDriver::Error::UnknownError] + errors = [Selenium::WebDriver::Error::UnknownError] + unless selenium_4? + ::Selenium::WebDriver.logger.suppress_deprecations do + errors << Selenium::WebDriver::Error::UnhandledError + end end + errors end def unhandled_alert_errors - ::Selenium::WebDriver.logger.suppress_deprecations do - [Selenium::WebDriver::Error::UnhandledAlertError, Selenium::WebDriver::Error::UnexpectedAlertOpenError] + errors = [Selenium::WebDriver::Error::UnexpectedAlertOpenError] + unless selenium_4? + ::Selenium::WebDriver.logger.suppress_deprecations do + errors << Selenium::WebDriver::Error::UnhandledAlertError + end end + errors end def delete_all_cookies @@ -367,9 +379,13 @@ def find_modal(text: nil, **options) end def find_modal_errors - ::Selenium::WebDriver.logger.suppress_deprecations do - [Selenium::WebDriver::Error::TimeoutError, Selenium::WebDriver::Error::TimeOutError] + errors = [Selenium::WebDriver::Error::TimeoutError] + unless selenium_4? + ::Selenium::WebDriver.logger.suppress_deprecations do + errors << Selenium::WebDriver::Error::TimeOutError + end end + errors end def silenced_unknown_error_message?(msg) diff --git a/lib/capybara/selenium/driver_specializations/chrome_driver.rb b/lib/capybara/selenium/driver_specializations/chrome_driver.rb index 4c52667ef..16694fcd3 100644 --- a/lib/capybara/selenium/driver_specializations/chrome_driver.rb +++ b/lib/capybara/selenium/driver_specializations/chrome_driver.rb @@ -46,9 +46,13 @@ def delete_all_cookies end def cdp_unsupported_errors - ::Selenium::WebDriver.logger.suppress_deprecations do - [Selenium::WebDriver::Error::UnhandledError, Selenium::WebDriver::Error::WebDriverError] + errors = [Selenium::WebDriver::Error::WebDriverError] + unless selenium_4? + ::Selenium::WebDriver.logger.suppress_deprecations do + errors << Selenium::WebDriver::Error::UnhandledError + end end + errors end def execute_cdp(cmd, params = {})