class Capybara::Angular::Waiter
Constants
- WAITER_JS
Attributes
page[RW]
Public Class Methods
new(page)
click to toggle source
# File lib/capybara/angular/waiter.rb, line 8 def initialize(page) @page = page end
Public Instance Methods
wait_until_ready()
click to toggle source
# File lib/capybara/angular/waiter.rb, line 12 def wait_until_ready return unless driver_supports_js? start = Time.now until ready? inject_waiter timeout! if timeout?(start) sleep(0.01) end end
Private Instance Methods
driver_supports_js?()
click to toggle source
# File lib/capybara/angular/waiter.rb, line 25 def driver_supports_js? page.evaluate_script "true" rescue Capybara::NotSupportedByDriverError false end
inject_waiter()
click to toggle source
# File lib/capybara/angular/waiter.rb, line 39 def inject_waiter return if page.evaluate_script("window.capybaraAngularReady !== undefined") page.execute_script WAITER_JS end
ready?()
click to toggle source
# File lib/capybara/angular/waiter.rb, line 44 def ready? page.evaluate_script("window.capybaraAngularReady === true") end
timeout!()
click to toggle source
# File lib/capybara/angular/waiter.rb, line 35 def timeout! raise Timeout::Error.new("timeout while waiting for angular") end
timeout?(start)
click to toggle source
# File lib/capybara/angular/waiter.rb, line 31 def timeout?(start) Time.now - start > Capybara::Angular.default_max_wait_time end