Class: Watir::WhenDOMChangedDecorator
- Inherits:
-
Object
- Object
- Watir::WhenDOMChangedDecorator
- Defined in:
- lib/watir/dom/wait.rb
Overview
Wraps an Element so that any subsequent method calls are put on hold until the DOM subtree is modified within the element.
Instance Method Summary collapse
-
#initialize(element, opts, message = nil) ⇒ WhenDOMChangedDecorator
constructor
A new instance of WhenDOMChangedDecorator.
- #method_missing(m, *args, &block) ⇒ Object
- #respond_to?(*args) ⇒ Boolean
Constructor Details
#initialize(element, opts, message = nil) ⇒ WhenDOMChangedDecorator
Returns a new instance of WhenDOMChangedDecorator.
43 44 45 46 47 48 |
# File 'lib/watir/dom/wait.rb', line 43 def initialize(element, opts, = nil) @element = element @opts = opts @message = @js = Dom::Wait::JAVASCRIPT.dup end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &block) ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/watir/dom/wait.rb', line 50 def method_missing(m, *args, &block) unless @element.respond_to?(m) raise NoMethodError, "undefined method `#{m}' for #{@element.inspect}:#{@element.class}" end @element.browser.execute_script @js, @element, @opts[:interval], @opts[:delay] Watir::Wait.until(@opts[:timeout], @message) { @element.browser.execute_script(Dom::Wait::DOM_READY) == 0 } @element.__send__(m, *args, &block) end |
Instance Method Details
#respond_to?(*args) ⇒ Boolean
61 62 63 |
# File 'lib/watir/dom/wait.rb', line 61 def respond_to?(*args) @element.respond_to?(*args) end |