Class: Teber::Locator

Inherits:
Object
  • Object
show all
Defined in:
lib/teber/locator.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(how, what, options = { "hidden" => false, "ajax_load" => false, }) ⇒ Locator

Returns a new instance of Locator.



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/teber/locator.rb', line 7

def initialize(
                how,
                what,
                options = {
                "hidden" => false,
                "ajax_load" => false,
                })
@how = how
@what = what
@options = options
end

Instance Attribute Details

#howObject

Returns the value of attribute how.



3
4
5
# File 'lib/teber/locator.rb', line 3

def how
  @how
end

#optionsObject

Returns the value of attribute options.



5
6
7
# File 'lib/teber/locator.rb', line 5

def options
  @options
end

#whatObject

Returns the value of attribute what.



4
5
6
# File 'lib/teber/locator.rb', line 4

def what
  @what
end

Class Method Details

.mouse_over(element, driver = $focus_driver) ⇒ Object



19
20
21
# File 'lib/teber/locator.rb', line 19

def self.mouse_over(element, driver = $focus_driver)
  driver.action.move_to(element).perform
end

Instance Method Details

#attribute(name, driver = $focus_driver) ⇒ Object



45
46
47
# File 'lib/teber/locator.rb', line 45

def attribute(name, driver = $focus_driver)
  driver.find_element(self).attribute(name)
end

#check(driver = $focus_driver) ⇒ Object



175
176
177
# File 'lib/teber/locator.rb', line 175

def check(driver = $focus_driver)
  self.click unless self.is_checked?
end

#clear(driver = $focus_driver) ⇒ Object

Text box methods



187
188
189
# File 'lib/teber/locator.rb', line 187

def clear(driver = $focus_driver)
  driver.find_element(self).clear
end

#clear_and_send_keys(*args) ⇒ Object



195
196
197
198
# File 'lib/teber/locator.rb', line 195

def clear_and_send_keys(*args)
  clear($focus_driver)
  send_keys(*args)
end

#click(driver = $focus_driver) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/teber/locator.rb', line 23

def click(driver = $focus_driver)
  begin
    driver.find_element(self).click
    puts "Clicked - #{self.how} => #{self.what}"
  rescue Exception => e
    puts "Not clicked at - #{self.how} => #{self.what}"
    puts e.message
  end
end

#click_if_present(driver = $focus_driver) ⇒ Object



141
142
143
# File 'lib/teber/locator.rb', line 141

def click_if_present(driver = $focus_driver)
  click(driver) if is_present?(driver)
end

#click_if_present_with_wait(timeout = , driver = $focus_driver) ⇒ Object



145
146
147
# File 'lib/teber/locator.rb', line 145

def click_if_present_with_wait(timeout = $conf["implicit_wait"], driver = $focus_driver)
  click(driver) if is_present_with_wait?(timeout, driver)
end

#count(driver = $focus_driver) ⇒ Object



106
107
108
109
# File 'lib/teber/locator.rb', line 106

def count(driver = $focus_driver)
  element_list = driver.find_elements(self)
  return element_list.count
end

#css_value(prop, driver = $focus_driver) ⇒ Object



49
50
51
# File 'lib/teber/locator.rb', line 49

def css_value(prop, driver = $focus_driver)
  driver.find_element(self).css_value(prop)
end

#displayed?(driver = $focus_driver) ⇒ Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/teber/locator.rb', line 53

def displayed?(driver = $focus_driver)
  driver.find_element(self).displayed?
end

#enabled?(driver = $focus_driver) ⇒ Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/teber/locator.rb', line 57

def enabled?(driver = $focus_driver)
  driver.find_element(self).enabled?
end

#get_element(driver = $focus_driver) ⇒ Object



163
164
165
# File 'lib/teber/locator.rb', line 163

def get_element(driver = $focus_driver)
  driver.find_element(self)
end

#get_value(driver = $focus_driver) ⇒ Object



200
201
202
# File 'lib/teber/locator.rb', line 200

def get_value(driver = $focus_driver)
  driver.find_element(self).attribute("value")
end

#hash(driver = $focus_driver) ⇒ Object



74
75
76
# File 'lib/teber/locator.rb', line 74

def hash(driver = $focus_driver)
  driver.find_element(self).hash
end

#is_checked?(driver = $focus_driver) ⇒ Boolean

Check box methods

Returns:

  • (Boolean)


171
172
173
# File 'lib/teber/locator.rb', line 171

def is_checked?(driver = $focus_driver)
  self.attribute("checked") == "true"
end

#is_enabled_with_wait?(timeout = , driver = $focus_driver) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
64
65
66
67
68
# File 'lib/teber/locator.rb', line 61

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?(driver = $focus_driver) ⇒ Boolean

Returns:

  • (Boolean)


127
128
129
# File 'lib/teber/locator.rb', line 127

def is_not_present?(driver = $focus_driver)
  return !is_present?(driver)
end

#is_not_present_with_wait?(timeout = , driver = $focus_driver) ⇒ Boolean

Returns:

  • (Boolean)


136
137
138
139
# File 'lib/teber/locator.rb', line 136

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) ⇒ Boolean

Returns:

  • (Boolean)


115
116
117
118
119
120
121
122
123
124
125
# File 'lib/teber/locator.rb', line 115

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 = , driver = $focus_driver) ⇒ Boolean

Returns:

  • (Boolean)


131
132
133
134
# File 'lib/teber/locator.rb', line 131

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) ⇒ Object



78
79
80
# File 'lib/teber/locator.rb', line 78

def location(driver = $focus_driver)
  driver.find_element(self).location
end

#location_once_scrolled_into_view(driver = $focus_driver) ⇒ Object



82
83
84
# File 'lib/teber/locator.rb', line 82

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) ⇒ Object



153
154
155
156
# File 'lib/teber/locator.rb', line 153

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) ⇒ Object



158
159
160
161
# File 'lib/teber/locator.rb', line 158

def move_and_click(driver = $focus_driver)
  element = driver.find_element(self)
  driver.action.move_to(element).click.perform
end

#property(driver = $focus_driver) ⇒ Object



86
87
88
# File 'lib/teber/locator.rb', line 86

def property(driver = $focus_driver)
  driver.find_element(self).property
end

#scroll_to_locator(driver = $focus_driver) ⇒ Object



70
71
72
# File 'lib/teber/locator.rb', line 70

def scroll_to_locator(driver = $focus_driver)
    $focus_driver.scroll_to_locator(self)
end

#selected?(driver = $focus_driver) ⇒ Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/teber/locator.rb', line 90

def selected?(driver = $focus_driver)
  driver.find_element(self).selected?
end

#send_keys(*args) ⇒ Object



191
192
193
# File 'lib/teber/locator.rb', line 191

def send_keys(*args)
  $focus_driver.find_element(self).send_keys(*args)
end

#size(driver = $focus_driver) ⇒ Object



94
95
96
# File 'lib/teber/locator.rb', line 94

def size(driver = $focus_driver)
  driver.find_element(self).size
end

#style(prop, driver = $focus_driver) ⇒ Object



98
99
100
# File 'lib/teber/locator.rb', line 98

def style(prop, driver = $focus_driver)
  driver.find_element(self).style(prop)
end

#submit(driver = $focus_driver) ⇒ Object



102
103
104
# File 'lib/teber/locator.rb', line 102

def submit(driver = $focus_driver)
  driver.find_element(self).submit
end

#tag_name(driver = $focus_driver) ⇒ Object



111
112
113
# File 'lib/teber/locator.rb', line 111

def tag_name(driver = $focus_driver)
  driver.find_element(self).tag_name
end

#text(driver = $focus_driver) ⇒ Object



33
34
35
# File 'lib/teber/locator.rb', line 33

def text(driver = $focus_driver)
  return driver.find_element(self).text
end

#texts(driver = $focus_driver) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/teber/locator.rb', line 37

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_sObject



149
150
151
# File 'lib/teber/locator.rb', line 149

def to_s
  return "How ===> #{@how}\nWhat ===> #{@what}\nOptions ===> #{@options}"
end

#uncheck(driver = $focus_driver) ⇒ Object



179
180
181
# File 'lib/teber/locator.rb', line 179

def uncheck(driver = $focus_driver)
  self.click if self.is_checked?
end