1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00

Fixes for IE driver

This commit is contained in:
Thomas Walpole 2018-04-02 10:08:29 -07:00
parent 3d3f238458
commit fad6f98cae
5 changed files with 18 additions and 5 deletions

View file

@ -264,8 +264,9 @@ module Capybara
raise unless allow_label_click && catch_error?(e)
begin
el ||= find(selector, locator, options.merge(visible: :all))
find(:label, for: el, visible: true).click unless el.checked? == checked
rescue # swallow extra errors - raise original
res = find(:label, for: el, visible: true).click unless el.checked? == checked
res
rescue => e2 # swallow extra errors - raise original
raise e
end
end

View file

@ -268,7 +268,10 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
::Selenium::WebDriver::Error::ElementNotInteractableError,
::Selenium::WebDriver::Error::ElementClickInterceptedError,
::Selenium::WebDriver::Error::InvalidElementStateError,
::Selenium::WebDriver::Error::ElementNotSelectableError
::Selenium::WebDriver::Error::ElementNotSelectableError,
::Selenium::WebDriver::Error::ElementNotSelectableError,
::Selenium::WebDriver::Error::NoSuchElementError, # IE
::Selenium::WebDriver::Error::InvalidArgumentError #IE
]
end
@ -296,6 +299,11 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
browser_name == "edge"
end
# @api private
def ie?
browser_name == "ie"
end
private
def browser_name

View file

@ -18,7 +18,7 @@ Capybara::SpecHelper.spec '#refresh' do
end
it "it reposts" do
if marionette?(@session) || edge?(@session)
if marionette?(@session) || edge?(@session) || ie?(@session)
skip "Firefox and Edge insist on prompting without providing a way to suppress"
end
@session.visit('/form')

View file

@ -137,6 +137,10 @@ module Capybara
def edge?(session)
session.respond_to?(:driver) && session.driver.respond_to?(:edge?, true) && session.driver.send(:edge?)
end
def ie?(session)
session.respond_to?(:driver) && session.driver.respond_to?(:ie?, true) && session.driver.send(:ie?)
end
end
end

View file

@ -18,7 +18,7 @@ module TestSessions
SeleniumIE = Capybara::Session.new(:selenium_ie, TestApp)
end
skipped_tests = %i[response_headers status_code trigger modals form_attribute]
skipped_tests = %i[response_headers status_code trigger modals hover form_attribute]
$stdout.puts `#{Selenium::WebDriver::IE.driver_path} --version` if ENV['CI']