Class: Watir::ElementLocator
- Includes:
- Selenium, Exception
- Defined in:
- lib/watir-webdriver/locators/element_locator.rb
Direct Known Subclasses
ButtonLocator, ChildCellLocator, ChildRowLocator, TextFieldLocator
Constant Summary collapse
- WD_FINDERS =
[ :class, :class_name, :css, :id, :link, :link_text, :name, :partial_link_text, :tag_name, :xpath ]
Instance Method Summary collapse
-
#initialize(wd, selector, valid_attributes) ⇒ ElementLocator
constructor
A new instance of ElementLocator.
- #locate ⇒ Object
- #locate_all ⇒ Object
Constructor Details
#initialize(wd, selector, valid_attributes) ⇒ ElementLocator
Returns a new instance of ElementLocator.
20 21 22 23 24 |
# File 'lib/watir-webdriver/locators/element_locator.rb', line 20 def initialize(wd, selector, valid_attributes) @wd = wd @selector = selector.dup @valid_attributes = valid_attributes end |
Instance Method Details
#locate ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/watir-webdriver/locators/element_locator.rb', line 26 def locate e = by_id and return e # short-circuit if :id is given if @selector.size == 1 element = find_first_by_one else element = find_first_by_multiple end # this actually only applies when finding by xpath - browser.text_field(:xpath, "//input[@type='radio']") # we don't need to validate the element if we built the xpath ourselves. validate_element(element) if element rescue WebDriver::Error::NoSuchElementError => wde nil end |
#locate_all ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/watir-webdriver/locators/element_locator.rb', line 43 def locate_all if @selector.size == 1 find_all_by_one else find_all_by_multiple end end |