Class: Watir::Element

Inherits:
Object show all
Defined in:
lib/watirmark/extensions/webdriver_extensions.rb

Instance Method Summary collapse

Instance Method Details

#click_if_existsObject



152
153
154
# File 'lib/watirmark/extensions/webdriver_extensions.rb', line 152

def click_if_exists
  click if exists?
end

#element_call(&block) ⇒ Object



138
139
140
141
142
143
144
145
# File 'lib/watirmark/extensions/webdriver_extensions.rb', line 138

def element_call &block
  old_element_call &block
rescue Selenium::WebDriver::Error::UnknownError => ex
  raise unless ex.message.include?("Element is not clickable at point")
  reset!
  assert_exists
  retry
end

#locate_dom_element(method) ⇒ Object



127
128
129
130
131
132
133
134
135
# File 'lib/watirmark/extensions/webdriver_extensions.rb', line 127

def locate_dom_element(method)
  assert_exists

  e = element_call { execute_atom method, @element }

  if e.kind_of?(Selenium::WebDriver::Element)
    Watir.element_class_for(e.tag_name.downcase).new(@parent, :element => e)
  end
end

#next_siblingObject Also known as: nextsibling



114
115
116
117
# File 'lib/watirmark/extensions/webdriver_extensions.rb', line 114

def next_sibling
  e = locate_dom_element(:getNextSibling)
  e.nil? ? element(xpath: './following-sibling::*') : e
end

#old_element_callObject



137
# File 'lib/watirmark/extensions/webdriver_extensions.rb', line 137

alias_method :old_element_call, :element_call

#old_textObject



147
# File 'lib/watirmark/extensions/webdriver_extensions.rb', line 147

alias_method :old_text, :text

#previous_siblingObject Also known as: prev_sibling, prevsibling



120
121
122
123
# File 'lib/watirmark/extensions/webdriver_extensions.rb', line 120

def previous_sibling
  e = locate_dom_element(:getPreviousSibling)
  e.nil? ? element(xpath: './preceding-sibling::*') : e
end

#textObject



148
149
150
# File 'lib/watirmark/extensions/webdriver_extensions.rb', line 148

def text
  old_text.strip
end