Work around geckodriver 0.22/selenium-webdriver issue with pause durations
This commit is contained in:
parent
055abbb583
commit
2568e405e0
|
@ -430,7 +430,6 @@ module Capybara
|
|||
require 'capybara/rack_test/css_handlers.rb'
|
||||
|
||||
require 'capybara/selenium/node'
|
||||
require 'capybara/selenium/nodes/marionette_node'
|
||||
require 'capybara/selenium/driver'
|
||||
end
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
|
|||
setup_exit_handler
|
||||
end
|
||||
end
|
||||
@browser
|
||||
end
|
||||
|
||||
def initialize(app, **options)
|
||||
|
@ -360,6 +361,7 @@ private
|
|||
when :chrome
|
||||
extend ChromeDriver
|
||||
when :firefox
|
||||
require 'capybara/selenium/patches/pause_duration_fix' if sel_driver.capabilities['moz:geckodriverVersion']&.start_with?('0.22.')
|
||||
extend MarionetteDriver if sel_driver.capabilities.is_a?(::Selenium::WebDriver::Remote::W3C::Capabilities)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module PauseDurationFix
|
||||
def encode
|
||||
super.tap { |output| output[:duration] ||= 0 }
|
||||
end
|
||||
end
|
||||
|
||||
if defined?(::Selenium::WebDriver::Interactions::Pause)
|
||||
::Selenium::WebDriver::Interactions::Pause.prepend PauseDurationFix
|
||||
end
|
Loading…
Reference in New Issue