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:
parent
3d3f238458
commit
fad6f98cae
5 changed files with 18 additions and 5 deletions
|
@ -264,8 +264,9 @@ module Capybara
|
||||||
raise unless allow_label_click && catch_error?(e)
|
raise unless allow_label_click && catch_error?(e)
|
||||||
begin
|
begin
|
||||||
el ||= find(selector, locator, options.merge(visible: :all))
|
el ||= find(selector, locator, options.merge(visible: :all))
|
||||||
find(:label, for: el, visible: true).click unless el.checked? == checked
|
res = find(:label, for: el, visible: true).click unless el.checked? == checked
|
||||||
rescue # swallow extra errors - raise original
|
res
|
||||||
|
rescue => e2 # swallow extra errors - raise original
|
||||||
raise e
|
raise e
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -268,7 +268,10 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
|
||||||
::Selenium::WebDriver::Error::ElementNotInteractableError,
|
::Selenium::WebDriver::Error::ElementNotInteractableError,
|
||||||
::Selenium::WebDriver::Error::ElementClickInterceptedError,
|
::Selenium::WebDriver::Error::ElementClickInterceptedError,
|
||||||
::Selenium::WebDriver::Error::InvalidElementStateError,
|
::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
|
end
|
||||||
|
|
||||||
|
@ -296,6 +299,11 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
|
||||||
browser_name == "edge"
|
browser_name == "edge"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# @api private
|
||||||
|
def ie?
|
||||||
|
browser_name == "ie"
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def browser_name
|
def browser_name
|
||||||
|
|
|
@ -18,7 +18,7 @@ Capybara::SpecHelper.spec '#refresh' do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "it reposts" do
|
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"
|
skip "Firefox and Edge insist on prompting without providing a way to suppress"
|
||||||
end
|
end
|
||||||
@session.visit('/form')
|
@session.visit('/form')
|
||||||
|
|
|
@ -137,6 +137,10 @@ module Capybara
|
||||||
def edge?(session)
|
def edge?(session)
|
||||||
session.respond_to?(:driver) && session.driver.respond_to?(:edge?, true) && session.driver.send(:edge?)
|
session.respond_to?(:driver) && session.driver.respond_to?(:edge?, true) && session.driver.send(:edge?)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def ie?(session)
|
||||||
|
session.respond_to?(:driver) && session.driver.respond_to?(:ie?, true) && session.driver.send(:ie?)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ module TestSessions
|
||||||
SeleniumIE = Capybara::Session.new(:selenium_ie, TestApp)
|
SeleniumIE = Capybara::Session.new(:selenium_ie, TestApp)
|
||||||
end
|
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']
|
$stdout.puts `#{Selenium::WebDriver::IE.driver_path} --version` if ENV['CI']
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue