lib/watir/dom/elements/element.rb in watir-dom-wait-0.3.1 vs lib/watir/dom/elements/element.rb in watir-dom-wait-0.3.2
- old
+ new
@@ -19,9 +19,14 @@
def dom_changed?(delay: 1.1)
driver.manage.timeouts.script_timeout = delay + 1
driver.execute_async_script(DOM_WAIT_JS, wd, delay)
rescue Selenium::WebDriver::Error::StaleElementReferenceError
retry
+ rescue Selenium::WebDriver::Error::JavascriptError => error
+ # sometimes we start script execution before new page is loaded and
+ # in rare cases ChromeDriver throws this error, we just swallow it and retry
+ retry if error.message.include?('document unloaded while waiting for result')
+ raise
ensure
# TODO: make sure we rollback to user-defined timeout
# blocked by https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/6608
driver.manage.timeouts.script_timeout = 1
end