diff --git a/lib/capybara/queries/base_query.rb b/lib/capybara/queries/base_query.rb index c5e3b047..2073d826 100644 --- a/lib/capybara/queries/base_query.rb +++ b/lib/capybara/queries/base_query.rb @@ -8,8 +8,12 @@ module Capybara attr_reader :options def wait - if @options.has_key?(:wait) - @options[:wait] || 0 + self.class.wait(options) + end + + def self.wait(options) + if options.has_key?(:wait) + options[:wait] || 0 else Capybara.default_max_wait_time end diff --git a/lib/capybara/rspec/matchers.rb b/lib/capybara/rspec/matchers.rb index 422d21de..50981442 100644 --- a/lib/capybara/rspec/matchers.rb +++ b/lib/capybara/rspec/matchers.rb @@ -161,7 +161,7 @@ module Capybara class BecomeClosed def initialize(options) - @wait_time = Capybara::Queries::SelectorQuery.new(options).wait + @wait_time = Capybara::Queries::BaseQuery.wait(options) end def matches?(window) diff --git a/lib/capybara/session.rb b/lib/capybara/session.rb index 02c40097..a18ad4b8 100644 --- a/lib/capybara/session.rb +++ b/lib/capybara/session.rb @@ -439,7 +439,7 @@ module Capybara driver.switch_to_window(window.handle) window else - wait_time = Capybara::Queries::SelectorQuery.new(options).wait + wait_time = Capybara::Queries::BaseQuery.wait(options) document.synchronize(wait_time, errors: [Capybara::WindowError]) do original_window_handle = driver.current_window_handle begin @@ -536,7 +536,7 @@ module Capybara old_handles = driver.window_handles block.call - wait_time = Capybara::Queries::SelectorQuery.new(options).wait + wait_time = Capybara::Queries::BaseQuery.wait(options) document.synchronize(wait_time, errors: [Capybara::WindowError]) do opened_handles = (driver.window_handles - old_handles) if opened_handles.size != 1