lib/watir/dom/elements/element.rb in watir-dom-wait-0.1.1 vs lib/watir/dom/elements/element.rb in watir-dom-wait-0.1.2
- old
+ new
@@ -27,22 +27,25 @@
# @option opts [Float] delay How long to wait for DOM modifications to start in seconds. Defaults to 1
#
def when_dom_changed(opts = {})
message = "waiting for DOM subtree to finish modifying in #{selector_string}"
- opts[:timeout] ||= 30
- opts[:interval] ||= 0.5
- opts[:delay] ||= 1
+ opts[:timeout] ||= Dom::Wait.timeout
+ opts[:interval] ||= Dom::Wait.interval
+ opts[:delay] ||= Dom::Wait.delay
if block_given?
js = Dom::Wait::JAVASCRIPT.dup
browser.execute_script js, self, opts[:interval], opts[:delay]
- Watir::Wait.until(opts[:timeout], message) { browser.execute_script(Dom::Wait::DOM_READY) == 0 }
+ Wait.until(opts[:timeout], message) { browser.execute_script(Dom::Wait::DOM_READY) == 0 }
yield self
else
WhenDOMChangedDecorator.new(self, opts, message)
end
+
+ rescue Selenium::WebDriver::Error::StaleElementReferenceError
+ locate
end
#
# Waits until DOM is changed within the element.
#
@@ -51,11 +54,12 @@
# @option opts [Float] interval How long to wait between DOM nodes adding/removing in seconds. Defaults to 0.5
# @option opts [Float] delay How long to wait for DOM modifications to start in seconds. Defaults to 1
#
def wait_until_dom_changed(opts = {})
- when_dom_changed(opts)
- nil
+ when_dom_changed(opts) do
+ # just trigger waiting
+ end
end
end # Element
end # Watir