From cd4541a1aa7f306d59d167fade17dff17d57ac75 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 4 Jul 2019 14:47:21 -0700 Subject: Fix Browser#preload for older Selenium Older versions of selenium had driver_path on ::Selenium::WebDriver::Chrome directly, not on Service. This avoids errors on those old versions and will preload properly if webdrivers is installed. --- actionpack/lib/action_dispatch/system_testing/browser.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/actionpack/lib/action_dispatch/system_testing/browser.rb b/actionpack/lib/action_dispatch/system_testing/browser.rb index f5f195d876..e861e52f09 100644 --- a/actionpack/lib/action_dispatch/system_testing/browser.rb +++ b/actionpack/lib/action_dispatch/system_testing/browser.rb @@ -46,9 +46,19 @@ module ActionDispatch def preload case type when :chrome - ::Selenium::WebDriver::Chrome::Service.driver_path.try(:call) + if ::Selenium::WebDriver::Service.respond_to? :driver_path= + ::Selenium::WebDriver::Chrome::Service.driver_path.try(:call) + else + # Selenium <= v3.141.0 + ::Selenium::WebDriver::Chrome.driver_path + end when :firefox - ::Selenium::WebDriver::Firefox::Service.driver_path.try(:call) + if ::Selenium::WebDriver::Service.respond_to? :driver_path= + ::Selenium::WebDriver::Firefox::Service.driver_path.try(:call) + else + # Selenium <= v3.141.0 + ::Selenium::WebDriver::Firefox.driver_path + end end end -- cgit v1.2.3