class RoboTest::Locator

Attributes

how[RW]
options[RW]
what[RW]

Public Class Methods

new( how, what, options = { "hidden" => false, "ajax_load" => false } ) click to toggle source
# File lib/robotest/locator.rb, line 8
def initialize(
    how,
    what,
    options = {
      "hidden" => false,
      "ajax_load" => false
    }
  )
  @how = how
  @what = what
  @options = options
end

Public Instance Methods

attribute(name, driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 57
def attribute(name, driver = $focus_driver)
  driver.find_element(self).attribute(name)
end
check(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 174
def check(driver = $focus_driver)
  self.click unless self.is_checked?
end
clear(driver = $focus_driver) click to toggle source

Text box methods

# File lib/robotest/locator.rb, line 186
def clear(driver = $focus_driver)
  driver.find_element(self).clear
end
clear_and_send_keys(*args) click to toggle source
# File lib/robotest/locator.rb, line 194
def clear_and_send_keys(*args)
  clear($focus_driver)
  send_keys(*args)
end
click(driver = $focus_driver) click to toggle source

Methods inherited and overriden from Selenium #

# File lib/robotest/locator.rb, line 29
def click(driver = $focus_driver)
  begin
    driver.find_element(self).click
    puts "Clicked - #{self.how} => #{self.what}"
  rescue Exception => e
    if(e.message.include?("is not clickable at point") || e.message.include?("element not visible") || e.message.include?("stale element reference"))
      sleep 3
      locator = Locator.new(@how,@what,@options)
      locator.click
    else
      puts "Not clicked at - #{self.how} => #{self.what}"
      puts e.message
    end
  end
end
click_if_present(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 140
def click_if_present(driver = $focus_driver)
  click(driver) if is_present?(driver)
end
click_if_present_with_wait(timeout = $conf["implicit_wait"], driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 144
def click_if_present_with_wait(timeout = $conf["implicit_wait"], driver = $focus_driver)
  click(driver) if is_present_with_wait?(timeout, driver)
end
css_value(prop, driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 61
def css_value(prop, driver = $focus_driver)
  driver.find_element(self).css_value(prop)
end
displayed?(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 65
def displayed?(driver = $focus_driver)
  driver.find_element(self).displayed?
end
enabled?(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 69
def enabled?(driver = $focus_driver)
  driver.find_element(self).enabled?
end
get_element(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 162
def get_element(driver = $focus_driver)
  driver.find_element(self)
end
get_value(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 199
def get_value(driver = $focus_driver)
  driver.find_element(self).attribute("value")
end
hash(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 82
def hash(driver = $focus_driver)
  driver.find_element(self).hash
end
is_checked?(driver = $focus_driver) click to toggle source

Check box methods

# File lib/robotest/locator.rb, line 170
def is_checked?(driver = $focus_driver)
  self.attribute("checked") == "true"
end
is_enabled_with_wait?(timeout=$conf["implicit_wait"], driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 73
def is_enabled_with_wait?(timeout=$conf["implicit_wait"], driver = $focus_driver)
  index=0
  while driver.find_element(self).enabled? == false
    sleep 1
    break if index == timeout
    index+=1
  end
end
is_not_present_with_wait?(timeout=$conf["implicit_wait"],driver=$focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 135
def is_not_present_with_wait?(timeout=$conf["implicit_wait"],driver=$focus_driver)
  Wait.wait_for_element_hide(self,timeout,driver)
  return !is_present?(driver)
end
is_present?(driver=$focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 118
def is_present?(driver=$focus_driver)
  driver.driver.manage.timeouts.implicit_wait = 0
  begin
    return driver.driver.find_element(self.how,self.what).displayed?
  rescue Exception => e
    driver.driver.manage.timeouts.implicit_wait = $conf["implicit_wait"]
    return false
  ensure
    driver.driver.manage.timeouts.implicit_wait = $conf["implicit_wait"]
  end
end
is_present_with_wait?(timeout=$conf["implicit_wait"],driver=$focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 130
def is_present_with_wait?(timeout=$conf["implicit_wait"],driver=$focus_driver)
  Wait.wait_for_element(self,timeout,driver)
  is_present?(driver)
end
location(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 86
def location(driver = $focus_driver)
  driver.find_element(self).location
end
location_once_scrolled_into_view(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 90
def location_once_scrolled_into_view(driver = $focus_driver)
  driver.find_element(self).location_once_scrolled_into_view
end
mouse_over(index = 1, driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 152
def mouse_over(index = 1, driver = $focus_driver)
  element = driver.find_elements(self)[index-1]
  driver.action.move_to(element).perform
end
move_and_click(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 157
def move_and_click(driver = $focus_driver)
  element = driver.find_element(self)
  driver.action.move_to(element).click.perform
end
property(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 94
def property(driver = $focus_driver)
  driver.find_element(self).property
end
selected?(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 98
def selected?(driver = $focus_driver)
  driver.find_element(self).selected?
end
send_keys(*args) click to toggle source
# File lib/robotest/locator.rb, line 190
def send_keys(*args)
  $focus_driver.find_element(self).send_keys(*args)
end
size(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 102
def size(driver = $focus_driver)
  driver.find_element(self).size
end
style(prop, driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 106
def style(prop, driver = $focus_driver)
  driver.find_element(self).style(prop)
end
submit(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 110
def submit(driver = $focus_driver)
  driver.find_element(self).submit
end
tag_name(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 114
def tag_name(driver = $focus_driver)
  driver.find_element(self).tag_name
end
text(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 45
def text(driver = $focus_driver)
  return driver.find_element(self).text
end
texts(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 49
def texts(driver = $focus_driver)
  elements_text = []
  driver.find_elements(self).each do |element|
    elements_text.push(element.text)
  end
  return elements_text
end
to_s() click to toggle source
# File lib/robotest/locator.rb, line 148
def to_s
  return "How ===> #{@how}\nWhat ===> #{@what}\nOptions ===> #{@options}"
end
uncheck(driver = $focus_driver) click to toggle source
# File lib/robotest/locator.rb, line 178
def uncheck(driver = $focus_driver)
  self.click if self.is_checked?
end