diff --git a/gemfiles/Gemfile.edge b/gemfiles/Gemfile.edge index 2dc2ae3d..3df6dc56 100644 --- a/gemfiles/Gemfile.edge +++ b/gemfiles/Gemfile.edge @@ -4,4 +4,4 @@ source 'https://rubygems.org' # Specify your gem's dependencies in webdrivers.gemspec gemspec path: '..' -gem 'selenium-webdriver', github: 'seleniumhq/selenium', branch: 'trunk', glob: 'rb/*.gemspec' +gem 'selenium-webdriver', '>= 4.0.0.beta1' diff --git a/lib/webdrivers/edge_finder.rb b/lib/webdrivers/edge_finder.rb index 9e85a84d..1f21628c 100644 --- a/lib/webdrivers/edge_finder.rb +++ b/lib/webdrivers/edge_finder.rb @@ -24,15 +24,15 @@ def location private def user_defined_location - if Selenium::WebDriver::EdgeChrome.path - Webdrivers.logger.debug "Selenium::WebDriver::EdgeChrome.path: #{Selenium::WebDriver::EdgeChrome.path}" - return Selenium::WebDriver::EdgeChrome.path + if Selenium::WebDriver::Edge.path + Webdrivers.logger.debug "Selenium::WebDriver::Edge.path: #{Selenium::WebDriver::Edge.path}" + return Selenium::WebDriver::Edge.path end - return if ENV['WD_EDGE_CHROME_PATH'].nil? + return if ENV['WD_EDGE_PATH'].nil? - Webdrivers.logger.debug "WD_EDGE_CHROME_PATH: #{ENV['WD_EDGE_CHROME_PATH']}" - ENV['WD_EDGE_CHROME_PATH'] + Webdrivers.logger.debug "WD_EDGE_PATH: #{ENV['WD_EDGE_PATH']}" + ENV['WD_EDGE_PATH'] end def win_location diff --git a/lib/webdrivers/edgedriver.rb b/lib/webdrivers/edgedriver.rb index d3ad5b5a..4fc9af25 100644 --- a/lib/webdrivers/edgedriver.rb +++ b/lib/webdrivers/edgedriver.rb @@ -111,19 +111,4 @@ def download_url end end -if defined? Selenium::WebDriver::EdgeChrome - if ::Selenium::WebDriver::Service.respond_to? :driver_path= - ::Selenium::WebDriver::EdgeChrome::Service.driver_path = proc { ::Webdrivers::Edgedriver.update } - else - # v3.141.0 and lower - module Selenium - module WebDriver - module EdgeChrome - def self.driver_path - @driver_path ||= Webdrivers::Edgedriver.update - end - end - end - end - end -end +::Selenium::WebDriver::Edge::Service.driver_path = proc { ::Webdrivers::Edgedriver.update } diff --git a/spec/webdrivers/edge_finder_spec.rb b/spec/webdrivers/edge_finder_spec.rb index 0c5f592e..85b68dc1 100644 --- a/spec/webdrivers/edge_finder_spec.rb +++ b/spec/webdrivers/edge_finder_spec.rb @@ -6,9 +6,7 @@ let(:edge_finder) { described_class } before(:all) do # rubocop:disable RSpec/BeforeAfterAll - # Skip these tests if version of selenium-webdriver being tested with doesn't - # have Chromium based Edge support - unless defined?(Selenium::WebDriver::EdgeChrome) + if Selenium::WebDriver::VERSION[0].to_i < 4 skip "The current selenium-webdriver doesn't include Chromium based Edge support" end end @@ -20,8 +18,8 @@ end context 'when the user provides a path to the Edge binary' do - it 'uses Selenium::WebDriver::EdgeChrome.path when it is defined' do - Selenium::WebDriver::EdgeChrome.path = edge_finder.location + it 'uses Selenium::WebDriver::Edge.path when it is defined' do + Selenium::WebDriver::Edge.path = edge_finder.location locations = %i[win_location mac_location linux_location] allow(edge_finder).to receive_messages(locations) @@ -29,8 +27,8 @@ locations.each { |loc| expect(edge_finder).not_to have_received(loc) } end - it "uses ENV['WD_EDGE_CHROME_PATH'] when it is defined" do - allow(ENV).to receive(:[]).with('WD_EDGE_CHROME_PATH').and_return(edge_finder.location) + it "uses ENV['WD_EDGE_PATH'] when it is defined" do + allow(ENV).to receive(:[]).with('WD_EDGE_PATH').and_return(edge_finder.location) locations = %i[win_location mac_location linux_location] allow(edge_finder).to receive_messages(locations) @@ -38,11 +36,11 @@ locations.each { |loc| expect(edge_finder).not_to have_received(loc) } end - it 'uses Selenium::WebDriver::EdgeChrome.path over WD_EDGE_CHROME_PATH' do - Selenium::WebDriver::EdgeChrome.path = edge_finder.location - allow(ENV).to receive(:[]).with('WD_EDGE_CHROME_PATH').and_return('my_wd_chrome_path') + it 'uses Selenium::WebDriver::Edge.path over WD_EDGE_PATH' do + Selenium::WebDriver::Edge.path = edge_finder.location + allow(ENV).to receive(:[]).with('WD_EDGE_PATH').and_return('my_wd_chrome_path') expect(edge_finder.version).not_to be_nil - expect(ENV).not_to have_received(:[]).with('WD_EDGE_CHROME_PATH') + expect(ENV).not_to have_received(:[]).with('WD_EDGE_PATH') end end diff --git a/spec/webdrivers/edgedriver_spec.rb b/spec/webdrivers/edgedriver_spec.rb index 2aa0684b..7972f1d5 100644 --- a/spec/webdrivers/edgedriver_spec.rb +++ b/spec/webdrivers/edgedriver_spec.rb @@ -6,9 +6,7 @@ let(:edgedriver) { described_class } before(:all) do # rubocop:disable RSpec/BeforeAfterAll - # Skip these tests if version of selenium-webdriver being tested with doesn't - # have Chromium based Edge support - unless defined?(Selenium::WebDriver::EdgeChrome) + if Selenium::WebDriver::VERSION[0].to_i < 4 skip "The current selenium-webdriver doesn't include Chromium based Edge support" end end