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