Class: ScreenObject::AppElements::Element
- Inherits:
-
Object
- Object
- ScreenObject::AppElements::Element
show all
- Defined in:
- lib/screen-object/accessors/element.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(locator) ⇒ Element
Returns a new instance of Element.
22
23
24
|
# File 'lib/screen-object/accessors/element.rb', line 22
def initialize(locator)
@locator=locator.split("~")
end
|
Instance Attribute Details
#locator ⇒ Object
Returns the value of attribute locator.
20
21
22
|
# File 'lib/screen-object/accessors/element.rb', line 20
def locator
@locator
end
|
Instance Method Details
#click ⇒ Object
30
31
32
|
# File 'lib/screen-object/accessors/element.rb', line 30
def click
element.click
end
|
#click_dynamic_exact_text(text) ⇒ Object
133
134
135
136
137
138
139
140
|
# File 'lib/screen-object/accessors/element.rb', line 133
def click_dynamic_exact_text(text)
if dynamic_text_exists?(text)
element.click
else
scroll_to_exact_text(text)
element.click
end
end
|
#click_dynamic_text(text) ⇒ Object
115
116
117
118
119
120
121
122
|
# File 'lib/screen-object/accessors/element.rb', line 115
def click_dynamic_text(text)
if dynamic_text_exists?(text)
element.click
else
scroll_to_text(text)
element.click
end
end
|
#click_exact_text(text) ⇒ Object
124
125
126
127
128
129
130
131
|
# File 'lib/screen-object/accessors/element.rb', line 124
def click_exact_text(text)
if exists?
click
else
scroll_to_exact_text(text)
element.click
end
end
|
#click_text(text) ⇒ Object
106
107
108
109
110
111
112
113
|
# File 'lib/screen-object/accessors/element.rb', line 106
def click_text(text)
if exists?
click
else
scroll_to_text(text)
element.click
end
end
|
#driver ⇒ Object
26
27
28
|
# File 'lib/screen-object/accessors/element.rb', line 26
def driver
$driver
end
|
#dynamic_text_exists?(dynamic_text) ⇒ Boolean
67
68
69
70
71
72
73
|
# File 'lib/screen-object/accessors/element.rb', line 67
def dynamic_text_exists? dynamic_text
begin
dynamic_xpath(dynamic_text).displayed?
rescue
false
end
end
|
#dynamic_xpath(text) ⇒ Object
58
59
60
61
62
63
64
65
|
# File 'lib/screen-object/accessors/element.rb', line 58
def dynamic_xpath(text)
concat_attribute=[]
element_attributes.each{|i| concat_attribute << %Q(contains(@#{i}, '#{text}'))}
puts "//#{locator[0]}[#{concat_attribute.join(' or ')}]"
locator1="xpath~//#{locator[0]}[#{concat_attribute.join(' or ')}]"
@locator=locator1.split("~")
element
end
|
#element ⇒ Object
46
47
48
|
# File 'lib/screen-object/accessors/element.rb', line 46
def element
driver.find_element(:"#{locator[0]}",locator[1])
end
|
#element_attributes ⇒ Object
54
55
56
|
# File 'lib/screen-object/accessors/element.rb', line 54
def element_attributes
%w[name resource-id value text]
end
|
#elements ⇒ Object
50
51
52
|
# File 'lib/screen-object/accessors/element.rb', line 50
def elements
driver.find_elements(:"#{locator[0]}",locator[1])
end
|
#exists? ⇒ Boolean
38
39
40
41
42
43
44
|
# File 'lib/screen-object/accessors/element.rb', line 38
def exists?
begin
element.displayed?
rescue
false
end
end
|
75
76
77
78
|
# File 'lib/screen-object/accessors/element.rb', line 75
def scroll
$driver.execute_script 'mobile: scrollTo',:element => element.ref
end
|
97
98
99
100
101
102
103
104
|
# File 'lib/screen-object/accessors/element.rb', line 97
def scroll_for_dynamic_element_click (expected_text)
if dynamic_xpath(expected_text).displayed?
element.click
else
scroll
element.click
end
end
|
88
89
90
91
92
93
94
95
|
# File 'lib/screen-object/accessors/element.rb', line 88
def scroll_for_element_click
if element.displayed?
element.click
else
scroll
element.click
end
end
|
#scroll_to_exact_text(text) ⇒ Object
84
85
86
|
# File 'lib/screen-object/accessors/element.rb', line 84
def scroll_to_exact_text(text)
$driver.scroll_to_exact(text)
end
|
#scroll_to_text(text) ⇒ Object
80
81
82
|
# File 'lib/screen-object/accessors/element.rb', line 80
def scroll_to_text(text)
$driver.scroll_to(text)
end
|
#value ⇒ Object
34
35
36
|
# File 'lib/screen-object/accessors/element.rb', line 34
def value
element.value
end
|