class Selenium::WebDriver::Elements::Element

Public Class Methods

new(element, browser) click to toggle source
# File lib/selenium/webdriver/elements/element.rb, line 10
def initialize element, browser
  unless element.is_a? Selenium::WebDriver::Element
    raise TypeError.new "Can't create Element decorator for #{element.inspect}"
  end
  @element = element
  @browser = browser
end

Public Instance Methods

create_element(element, browser) click to toggle source
# File lib/selenium/webdriver/elements/element.rb, line 22
def create_element element, browser
  case element.tag_name
    when 'form' then Form.new element, browser
    when 'input' then
      type = element['type']
      case element['type']
        when 'text', 'password' then Textbox.new element, browser
        when 'submit', 'reset', 'button', 'image' then Button.new element, browser
        when 'checkbox' then Checkbox.new element, browser
        when 'file' then FileChooser.new element, browser
        # TODO: implement radio buttons
        #when 'radio' then Element.new element, browser
        else Element.new element, browser
      end
    when 'textarea' then Textbox.new element, browser
    when 'select' then Select.new element, browser
    else Element.new element, browser
  end
end
element_present?(*args) click to toggle source
# File lib/selenium/webdriver/elements/element.rb, line 55
def element_present? *args
  find_element(*args) != nil
end
find_element(*args) click to toggle source
# File lib/selenium/webdriver/elements/element.rb, line 42
def find_element *args
  begin
    el = @element.find_element *args
    create_element(el, @browser)
  rescue Selenium::WebDriver::Error::NoSuchElementError
    nil
  end
end
find_elements(*args) click to toggle source
# File lib/selenium/webdriver/elements/element.rb, line 51
def find_elements *args
  @element.find_elements(*args).collect { |el| create_element el, @browser }
end
method_missing(methodname, *args) click to toggle source
# File lib/selenium/webdriver/elements/element.rb, line 18
def method_missing methodname, *args
  @element.send methodname.to_sym, *args
end