Support native is_element_displayed with EdgeChrome
This commit is contained in:
parent
724e245b6e
commit
d82b21a915
1
.rspec
1
.rspec
|
@ -2,4 +2,3 @@
|
|||
--order random
|
||||
--require rspec/instafail
|
||||
--format RSpec::Instafail
|
||||
--format progress
|
|
@ -3,6 +3,12 @@
|
|||
require 'capybara/selenium/nodes/edge_node'
|
||||
|
||||
module Capybara::Selenium::Driver::EdgeDriver
|
||||
def self.extended(base)
|
||||
bridge = base.send(:bridge)
|
||||
bridge.extend Capybara::Selenium::IsDisplayed unless bridge.commands(:is_element_displayed)
|
||||
base.options[:native_displayed] = false if base.options[:native_displayed].nil?
|
||||
end
|
||||
|
||||
def fullscreen_window(handle)
|
||||
return super if edgedriver_version < 75
|
||||
|
||||
|
|
|
@ -63,6 +63,18 @@ class Capybara::Selenium::EdgeNode < Capybara::Selenium::Node
|
|||
click unless selected_or_disabled
|
||||
end
|
||||
|
||||
def visible?
|
||||
return super unless chrome_edge? && native_displayed?
|
||||
|
||||
begin
|
||||
bridge.send(:execute, :is_element_displayed, id: native.ref)
|
||||
rescue Selenium::WebDriver::Error::UnknownCommandError
|
||||
# If the is_element_displayed command is unknown, no point in trying again
|
||||
driver.options[:native_displayed] = false
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def file_errors
|
||||
|
@ -81,4 +93,10 @@ private
|
|||
def chrome_edge?
|
||||
browser_version >= 75
|
||||
end
|
||||
|
||||
def native_displayed?
|
||||
(driver.options[:native_displayed] != false) &&
|
||||
# chromedriver_supports_displayed_endpoint? &&
|
||||
(!ENV['DISABLE_CAPYBARA_SELENIUM_OPTIMIZATIONS'])
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue