Add test for visit with target - chrome/chromedriver issue

This commit is contained in:
Thomas Walpole 2018-02-28 09:58:29 -08:00
parent a0f913be7d
commit 7491e0606f
4 changed files with 22 additions and 2 deletions

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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