10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/watir_angular.rb', line 10
def self.wait_for_angular(browser, timeout: Watir.default_timeout)
wd = browser.wd
angular_element = "document.querySelectorAll('[ng-app]')[0]"
wd.execute_script("angular.element(#{angular_element}).scope().pageFinishedRendering = false")
wd.execute_script("angular.getTestability(#{angular_element}).whenStable(function(){angular.element(#{angular_element}).scope().pageFinishedRendering = true})")
browser.wait_until(timeout: timeout, message: "waiting for angular to render") do
wd.execute_script("return angular.element(#{angular_element}).scope().pageFinishedRendering")
end
rescue Selenium::WebDriver::Error::InvalidElementStateError
rescue Selenium::WebDriver::Error::JavascriptError
rescue Selenium::WebDriver::Error::UnknownError => ex
raise unless ex.message.include? "angular is not defined"
end
|