class Selenium::WebDriver::Support::EventFiringBridge

@api private

Public Class Methods

new(delegate, listener) click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 10
def initialize(delegate, listener)
  @delegate = delegate

  if listener.respond_to? :call
    @listener = BlockEventListener.new(listener)
  else
    @listener = listener
  end
end

Public Instance Methods

clearElement(ref) click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 44
def clearElement(ref)
  dispatch(:change_value_of, create_element(ref), driver) {
    @delegate.clearElement(ref)
  }
end
clickElement(ref) click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 38
def clickElement(ref)
  dispatch(:click, create_element(ref), driver) {
    @delegate.clickElement(ref)
  }
end
close() click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 82
def close
  dispatch(:close, driver) { @delegate.close }
end
executeScript(script, *args) click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 72
def executeScript(script, *args)
  dispatch(:execute_script, script, driver) {
    @delegate.executeScript(script, *args)
  }
end
find_element_by(how, what, parent = nil) click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 56
def find_element_by(how, what, parent = nil)
  e = dispatch(:find, how, what, driver) {
    @delegate.find_element_by how, what, parent
  }

  Element.new self, e.ref
end
find_elements_by(how, what, parent = nil) click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 64
def find_elements_by(how, what, parent = nil)
  es = dispatch(:find, how, what, driver) {
    @delegate.find_elements_by(how, what, parent)
  }

  es.map { |e| Element.new self, e.ref }
end
get(url) click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 20
def get(url)
  dispatch(:navigate_to, url, driver) {
    @delegate.get(url)
  }
end
goBack() click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 32
def goBack
  dispatch(:navigate_back, driver) {
    @delegate.goBack
  }
end
goForward() click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 26
def goForward
  dispatch(:navigate_forward, driver) {
    @delegate.goForward
  }
end
quit() click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 78
def quit
  dispatch(:quit, driver) { @delegate.quit }
end
sendKeysToElement(ref, keys) click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 50
def sendKeysToElement(ref, keys)
  dispatch(:change_value_of, create_element(ref), driver) {
    @delegate.sendKeysToElement(ref, keys)
  }
end

Private Instance Methods

create_element(ref) click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 88
def create_element(ref)
  # hmm. we're not passing self here to not fire events for potential calls made by the listener
  Element.new @delegate, ref
end
dispatch(name, *args) { || ... } click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 97
def dispatch(name, *args, &blk)
  @listener.__send__("before_#{name}", *args)
  returned = yield
  @listener.__send__("after_#{name}", *args)

  returned
end
driver() click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 93
def driver
  @driver ||= Driver.new(self)
end
method_missing(meth, *args, &blk) click to toggle source
# File lib/selenium/webdriver/support/event_firing_bridge.rb, line 105
def method_missing(meth, *args, &blk)
  @delegate.__send__(meth, *args, &blk)
end