diff --git a/lib/capybara/driver/base.rb b/lib/capybara/driver/base.rb index ea9450f9..6bf105cf 100644 --- a/lib/capybara/driver/base.rb +++ b/lib/capybara/driver/base.rb @@ -133,4 +133,8 @@ class Capybara::Driver::Base def needs_server? false end + + def browser_initialized? + true + end end diff --git a/lib/capybara/rack_test/driver.rb b/lib/capybara/rack_test/driver.rb index 35c38ffc..89ce48d3 100644 --- a/lib/capybara/rack_test/driver.rb +++ b/lib/capybara/rack_test/driver.rb @@ -86,6 +86,10 @@ class Capybara::RackTest::Driver < Capybara::Driver::Base @browser = nil end + def browser_initialized? + !@browser.nil? + end + def get(*args, &block); browser.get(*args, &block); end def post(*args, &block); browser.post(*args, &block); end def put(*args, &block); browser.put(*args, &block); end diff --git a/lib/capybara/selenium/driver.rb b/lib/capybara/selenium/driver.rb index ae3c4972..8da3adc2 100644 --- a/lib/capybara/selenium/driver.rb +++ b/lib/capybara/selenium/driver.rb @@ -237,6 +237,10 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base Selenium::WebDriver::Error::NoSuchWindowError end + def browser_initialized? + !@browser.nil? + end + private def within_given_window(handle) diff --git a/lib/capybara/session.rb b/lib/capybara/session.rb index 958d92f3..21b75980 100644 --- a/lib/capybara/session.rb +++ b/lib/capybara/session.rb @@ -101,7 +101,7 @@ module Capybara def reset! if @touched driver.reset! - assert_no_selector :xpath, "/html/body/*" + assert_no_selector :xpath, "/html/body/*" if driver.browser_initialized? @touched = false end raise_server_error!