diff --git a/spec/selenium_spec_chrome.rb b/spec/selenium_spec_chrome.rb index ed37a3a2..eeebd2f0 100644 --- a/spec/selenium_spec_chrome.rb +++ b/spec/selenium_spec_chrome.rb @@ -87,6 +87,8 @@ Capybara::SpecHelper.run_specs TestSessions::Chrome, CHROME_DRIVER.to_s, capybar pending "Chrome headless doesn't support maximize" if ENV['HEADLESS'] when /Capybara::Session selenium_chrome node #shadow_root should get visible text/ pending "Selenium doesn't currently support getting visible text for shadow root elements" + when /Capybara::Session selenium_chrome node #shadow_root/ + skip 'Not supported with this Selenium version' if selenium_lt?('4.1', @session) end end diff --git a/spec/selenium_spec_firefox.rb b/spec/selenium_spec_firefox.rb index cdc4b7c3..520a1dea 100644 --- a/spec/selenium_spec_firefox.rb +++ b/spec/selenium_spec_firefox.rb @@ -82,6 +82,8 @@ Capybara::SpecHelper.run_specs TestSessions::SeleniumFirefox, 'selenium', capyba pending 'Not sure what firefox is doing here' when /Capybara::Session selenium_chrome node #shadow_root should get visible text/ pending "Selenium doesn't currently support getting visible text for shadow root elements" + when /Capybara::Session selenium node #shadow_root/ + skip 'Not supported with this Selenium version' if selenium_lt?('4.1', @session) end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 787be277..758aeea0 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -45,6 +45,15 @@ module Capybara chrome?(session) && (chrome_version(session) >= version) end + def selenium?(session) + session.driver.is_a? Capybara::Selenium::Driver + end + + def selenium_lt?(version, session) + selenium?(session) && + Gem::Version.new(::Selenium::WebDriver::VERSION) < Gem::Version.new(version) + end + def edge?(session) browser_name(session).to_s.start_with?('edge') end