From 5665396fc99fe73340e88998ffa7a4d2eda6ffa2 Mon Sep 17 00:00:00 2001 From: Scott Bonebrake Date: Fri, 19 Sep 2014 14:18:50 -0700 Subject: [PATCH] Fix issue #1237 so browser doesn't intialize during session reset --- lib/capybara/driver/base.rb | 4 ++++ lib/capybara/rack_test/driver.rb | 4 ++++ lib/capybara/selenium/driver.rb | 4 ++++ lib/capybara/session.rb | 2 +- 4 files changed, 13 insertions(+), 1 deletion(-) 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!