mirror of
https://github.com/teamcapybara/capybara.git
synced 2022-11-09 12:08:07 -05:00
Add test for visit with target - chrome/chromedriver issue
This commit is contained in:
parent
a0f913be7d
commit
7491e0606f
4 changed files with 22 additions and 2 deletions
|
@ -262,7 +262,7 @@ module Capybara
|
|||
case args.first
|
||||
when Capybara::Session, Capybara::Node::Base, Capybara::Node::Simple
|
||||
[args.shift, args]
|
||||
when -> (arg) { arg.respond_to?(:to_capybara_node) }
|
||||
when ->(arg) { arg.respond_to?(:to_capybara_node) }
|
||||
[args.shift.to_capybara_node, args]
|
||||
else
|
||||
[page, args]
|
||||
|
|
|
@ -147,7 +147,7 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
|
|||
@browser.navigate.to("about:blank")
|
||||
sleep 0.1 # slight wait for alert
|
||||
@browser.switch_to.alert.accept
|
||||
rescue modal_error
|
||||
rescue modal_error # rubocop:disable Metrics/BlockNesting
|
||||
# alert now gone, should mean navigation happened
|
||||
end
|
||||
end
|
||||
|
|
|
@ -27,6 +27,14 @@ Capybara::SpecHelper.spec '#visit' do
|
|||
expect(@session).to have_content('Hello world!')
|
||||
end
|
||||
|
||||
it "should fetch a response when sequentially visiting same destination with a target" do
|
||||
skip "Chrome/chromedriver has an issue visiting URL with target after visiting same URL without target" if chrome_lt?(65.0, @session)
|
||||
@session.visit('/form')
|
||||
expect(@session).to have_css('#form_title')
|
||||
@session.visit('/form#form_title')
|
||||
expect(@session).to have_css('#form_title')
|
||||
end
|
||||
|
||||
it "raises any errors caught inside the server", requires: [:server] do
|
||||
quietly { @session.visit("/error") }
|
||||
expect do
|
||||
|
|
|
@ -120,6 +120,18 @@ module Capybara
|
|||
def marionette_gte?(version, session)
|
||||
marionette?(session) && (session.driver.browser.capabilities[:browser_version].to_f >= version)
|
||||
end
|
||||
|
||||
def chrome?(session)
|
||||
session.respond_to?(:driver) && session.driver.respond_to?(:chrome?, true) && session.driver.send(:chrome?)
|
||||
end
|
||||
|
||||
def chrome_lt?(version, session)
|
||||
chrome?(session) && (session.driver.browser.capabilities[:version].to_f < version)
|
||||
end
|
||||
|
||||
def chrome_gte?(version, session)
|
||||
chrome?(session) && (session.driver.browser.capabilities[:version].to_f >= version)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue