Optimize IE node disabled?

This commit is contained in:
Thomas Walpole 2019-05-20 12:05:48 -07:00
parent 249ef3f722
commit f8bfa9cd32
1 changed files with 14 additions and 3 deletions

View File

@ -4,8 +4,19 @@ require 'capybara/selenium/extensions/html5_drag'
class Capybara::Selenium::IENode < Capybara::Selenium::Node
def disabled?
# TODO: Doesn't work for a bunch of cases - need to get IE running to see if it can be done like this
# driver.evaluate_script("arguments[0].msMatchesSelector(':disabled, select:disabled *')", self)
super
# super
# optimize to one script call
driver.evaluate_script <<~JS.delete("\n"), self
arguments[0].msMatchesSelector('
:disabled,
select:disabled *,
optgroup:disabled *,
fieldset[disabled],
fieldset[disabled] > *:not(legend),
fieldset[disabled] > *:not(legend) *,
fieldset[disabled] > legend:nth-of-type(n+2),
fieldset[disabled] > legend:nth-of-type(n+2) *
')
JS
end
end