Class: Watir::Locators::Element::Locator
- Inherits:
- 
      Object
      
        - Object
- Watir::Locators::Element::Locator
 
- Defined in:
- lib/watir-webdriver/locators/element/locator.rb
Direct Known Subclasses
Constant Summary collapse
- WD_FINDERS =
- [ :class, :class_name, :css, :id, :link, :link_text, :name, :partial_link_text, :tag_name, :xpath ] 
- CONVERTABLE_REGEXP =
          Regular expressions that can be reliably converted to xpath ‘contains` expressions in order to optimize the . 
- %r{ \A ([^\[\]\\^$.|?*+()]*) # leading literal characters [^|]*? # do not try to convert expressions with alternates ([^\[\]\\^$.|?*+()]*) # trailing literal characters \z }x
Instance Attribute Summary collapse
- 
  
    
      #element_validator  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute element_validator. 
- 
  
    
      #selector_builder  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute selector_builder. 
Instance Method Summary collapse
- 
  
    
      #initialize(parent, selector, selector_builder, element_validator)  ⇒ Locator 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Locator. 
- #locate ⇒ Object
- #locate_all ⇒ Object
Constructor Details
#initialize(parent, selector, selector_builder, element_validator) ⇒ Locator
Returns a new instance of Locator.
| 31 32 33 34 35 36 | # File 'lib/watir-webdriver/locators/element/locator.rb', line 31 def initialize(parent, selector, selector_builder, element_validator) @parent = parent # either element or browser @selector = selector.dup @selector_builder = selector_builder @element_validator = element_validator end | 
Instance Attribute Details
#element_validator ⇒ Object (readonly)
Returns the value of attribute element_validator.
| 6 7 8 | # File 'lib/watir-webdriver/locators/element/locator.rb', line 6 def element_validator @element_validator end | 
#selector_builder ⇒ Object (readonly)
Returns the value of attribute selector_builder.
| 5 6 7 | # File 'lib/watir-webdriver/locators/element/locator.rb', line 5 def selector_builder @selector_builder end | 
Instance Method Details
#locate ⇒ Object
| 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | # File 'lib/watir-webdriver/locators/element/locator.rb', line 38 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/css - browser.text_field(:xpath, "//input[@type='radio']") # We don't need to validate the element if we built the xpath ourselves. # It is also used to alter behavior of methods locating more than one type of element # (e.g. text_field locates both input and textarea) element_validator.validate(element, @selector) if element rescue Selenium::WebDriver::Error::NoSuchElementError, Selenium::WebDriver::Error::StaleElementReferenceError nil end | 
#locate_all ⇒ Object
| 56 57 58 59 60 61 62 | # File 'lib/watir-webdriver/locators/element/locator.rb', line 56 def locate_all if @selector.size == 1 find_all_by_one else find_all_by_multiple end end |