testcentricity_web 3.1.9.1 → 3.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +8 -8
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_elements/select_list.rb +70 -61
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4b9a9ddffbe8fb506daa3b228151e8b73d79f880ed4f836d33570ce90a20b6b1
|
4
|
+
data.tar.gz: 9ecaec237bb61bf11bc7b9a84ae34bfee3a3449c4452f058d7f3750ca48f5884
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8623d9b8f498bd78ade6b4ccbf749a5f094643e120be9f34094d496dfca684d9a251446a3dcc3922e4bc924fa0c0c2ea8086e1196850c8543ba32f924f6f3358
|
7
|
+
data.tar.gz: 84b61d66ec403bf9f7a41c66951824c976f845b990cf36495a219f338ba6ea28ebaf864a59fd69cfaf476338f72330f60eb4b5974143c5aa6fe740ae0dbc324e
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
testcentricity_web (3.1.
|
4
|
+
testcentricity_web (3.1.10)
|
5
5
|
appium_lib
|
6
6
|
browserstack-local
|
7
7
|
capybara (>= 3.1, < 4)
|
@@ -25,7 +25,7 @@ GEM
|
|
25
25
|
appium_lib_core (~> 3.1)
|
26
26
|
nokogiri (~> 1.8, >= 1.8.1)
|
27
27
|
tomlrb (~> 1.1)
|
28
|
-
appium_lib_core (3.1.
|
28
|
+
appium_lib_core (3.1.2)
|
29
29
|
faye-websocket (~> 0.10.0)
|
30
30
|
selenium-webdriver (~> 3.14, >= 3.14.1)
|
31
31
|
axiom-types (0.1.1)
|
@@ -33,7 +33,7 @@ GEM
|
|
33
33
|
ice_nine (~> 0.11.0)
|
34
34
|
thread_safe (~> 0.3, >= 0.3.1)
|
35
35
|
browserstack-local (1.3.0)
|
36
|
-
capybara (3.
|
36
|
+
capybara (3.20.2)
|
37
37
|
addressable
|
38
38
|
mini_mime (>= 0.1.3)
|
39
39
|
nokogiri (~> 1.8)
|
@@ -56,7 +56,7 @@ GEM
|
|
56
56
|
faye-websocket (0.10.7)
|
57
57
|
eventmachine (>= 0.12.0)
|
58
58
|
websocket-driver (>= 0.5.1)
|
59
|
-
ffi (1.
|
59
|
+
ffi (1.11.1)
|
60
60
|
i18n (1.6.0)
|
61
61
|
concurrent-ruby (~> 1.0)
|
62
62
|
ice_nine (0.11.2)
|
@@ -72,15 +72,15 @@ GEM
|
|
72
72
|
rack (>= 1.0, < 3)
|
73
73
|
rake (12.3.2)
|
74
74
|
redcarpet (3.4.0)
|
75
|
-
regexp_parser (1.
|
75
|
+
regexp_parser (1.5.0)
|
76
76
|
ruby-ole (1.2.12.2)
|
77
77
|
rubyzip (1.2.2)
|
78
|
-
selenium-webdriver (3.142.
|
78
|
+
selenium-webdriver (3.142.3)
|
79
79
|
childprocess (>= 0.5, < 2.0)
|
80
80
|
rubyzip (~> 1.2, >= 1.2.2)
|
81
81
|
spreadsheet (1.1.7)
|
82
82
|
ruby-ole (>= 1.0)
|
83
|
-
test-unit (3.3.
|
83
|
+
test-unit (3.3.3)
|
84
84
|
power_assert
|
85
85
|
thread_safe (0.3.6)
|
86
86
|
tomlrb (1.2.8)
|
@@ -89,7 +89,7 @@ GEM
|
|
89
89
|
coercible (~> 1.0)
|
90
90
|
descendants_tracker (~> 0.0, >= 0.0.3)
|
91
91
|
equalizer (~> 0.0, >= 0.0.9)
|
92
|
-
webdrivers (3.9.
|
92
|
+
webdrivers (3.9.4)
|
93
93
|
nokogiri (~> 1.6)
|
94
94
|
rubyzip (~> 1.0)
|
95
95
|
selenium-webdriver (~> 3.0)
|
@@ -5,6 +5,7 @@ module TestCentricity
|
|
5
5
|
attr_accessor :list_trigger
|
6
6
|
attr_accessor :text_field
|
7
7
|
attr_accessor :options_list
|
8
|
+
attr_accessor :base_object
|
8
9
|
|
9
10
|
def initialize(name, parent, locator, context)
|
10
11
|
super
|
@@ -52,13 +53,13 @@ module TestCentricity
|
|
52
53
|
# state_select.choose_option(text: 'Maryland')
|
53
54
|
#
|
54
55
|
def choose_option(option)
|
55
|
-
|
56
|
-
object_not_found_exception(
|
56
|
+
@base_object, = find_element
|
57
|
+
object_not_found_exception(@base_object, nil)
|
57
58
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
trigger_list
|
60
|
+
|
61
|
+
unless @options_list.nil?
|
62
|
+
find_component(@options_list, 'drop menu')
|
62
63
|
raise "Could not find option #{option} to choose" unless first(:css, @list_item, minimum: 0, wait: 2)
|
63
64
|
|
64
65
|
if option.is_a?(Array)
|
@@ -71,7 +72,7 @@ module TestCentricity
|
|
71
72
|
page.find(:css, "#{@list_item}:nth-of-type(#{option[:value]})").click if option.key?(:value)
|
72
73
|
page.find(:css, "#{@list_item}:nth-of-type(#{option[:text]})").click if option.key?(:text)
|
73
74
|
else
|
74
|
-
options =
|
75
|
+
options = @base_object.all(@list_item).collect(&:text)
|
75
76
|
sleep(2) unless options.include?(option)
|
76
77
|
first(:css, @list_item, text: option).click
|
77
78
|
end
|
@@ -79,13 +80,6 @@ module TestCentricity
|
|
79
80
|
return
|
80
81
|
end
|
81
82
|
|
82
|
-
if @list_trigger.nil?
|
83
|
-
obj.click
|
84
|
-
else
|
85
|
-
page.find(:css, @list_trigger).click
|
86
|
-
sleep(1)
|
87
|
-
end
|
88
|
-
|
89
83
|
if first(:css, @list_item, minimum: 0, wait: 2)
|
90
84
|
if option.is_a?(Array)
|
91
85
|
option.each do |item|
|
@@ -97,7 +91,7 @@ module TestCentricity
|
|
97
91
|
page.find(:css, "#{@list_item}:nth-of-type(#{option[:value]})").click if option.key?(:value)
|
98
92
|
page.find(:css, "#{@list_item}:nth-of-type(#{option[:text]})").click if option.key?(:text)
|
99
93
|
else
|
100
|
-
options =
|
94
|
+
options = @base_object.all(@list_item).collect(&:text)
|
101
95
|
sleep(2) unless options.include?(option)
|
102
96
|
first(:css, @list_item, text: option).click
|
103
97
|
end
|
@@ -105,25 +99,20 @@ module TestCentricity
|
|
105
99
|
else
|
106
100
|
if option.is_a?(Array)
|
107
101
|
option.each do |item|
|
108
|
-
select_item(
|
102
|
+
select_item(@base_object, item)
|
109
103
|
end
|
110
104
|
else
|
111
|
-
select_item(
|
105
|
+
select_item(@base_object, option)
|
112
106
|
end
|
113
107
|
end
|
114
108
|
end
|
115
109
|
|
116
110
|
def set(text)
|
117
|
-
if @text_field.nil?
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
if @list_trigger.nil?
|
123
|
-
obj.click
|
124
|
-
else
|
125
|
-
page.find(:css, @list_trigger).click
|
126
|
-
end
|
111
|
+
raise "A 'text_field' list element must be defined before calling the 'set' method on a selectlist object" if @text_field.nil?
|
112
|
+
@base_object, = find_element
|
113
|
+
object_not_found_exception(@base_object, nil)
|
114
|
+
trigger_list
|
115
|
+
|
127
116
|
page.find(:css, @text_field, wait: 2).set(text)
|
128
117
|
end
|
129
118
|
|
@@ -135,20 +124,19 @@ module TestCentricity
|
|
135
124
|
# all_colors = color_select.get_options
|
136
125
|
#
|
137
126
|
def get_options
|
138
|
-
|
139
|
-
object_not_found_exception(
|
140
|
-
if @
|
141
|
-
if
|
142
|
-
|
127
|
+
@base_object, = find_element
|
128
|
+
object_not_found_exception(@base_object, nil)
|
129
|
+
if @options_list.nil?
|
130
|
+
if @base_object.first(:css, @list_item, minimum: 0, wait: 2)
|
131
|
+
@base_object.all(@list_item).collect(&:text)
|
143
132
|
else
|
144
|
-
|
133
|
+
@base_object.all('option', visible: :all).collect(&:text)
|
145
134
|
end
|
146
135
|
else
|
147
|
-
|
148
|
-
menu =
|
149
|
-
object_not_found_exception(menu, nil)
|
136
|
+
trigger_list
|
137
|
+
menu = find_component(@options_list, 'drop menu')
|
150
138
|
options = menu.all(@list_item, visible: true, minimum: 0, wait: 2).collect(&:text)
|
151
|
-
|
139
|
+
trigger_list
|
152
140
|
options
|
153
141
|
end
|
154
142
|
end
|
@@ -163,20 +151,19 @@ module TestCentricity
|
|
163
151
|
# num_colors = color_select.get_option_count
|
164
152
|
#
|
165
153
|
def get_option_count
|
166
|
-
|
167
|
-
object_not_found_exception(
|
168
|
-
if @
|
169
|
-
if
|
170
|
-
|
154
|
+
@base_object, = find_element
|
155
|
+
object_not_found_exception(@base_object, nil)
|
156
|
+
if @options_list.nil?
|
157
|
+
if @base_object.first(:css, @list_item, minimum: 0, wait: 2)
|
158
|
+
@base_object.all(@list_item).count
|
171
159
|
else
|
172
|
-
|
160
|
+
@base_object.all('option', visible: :all).count
|
173
161
|
end
|
174
162
|
else
|
175
|
-
|
176
|
-
menu =
|
177
|
-
object_not_found_exception(menu, nil)
|
163
|
+
trigger_list
|
164
|
+
menu = find_component(@options_list, 'drop menu')
|
178
165
|
num_items = menu.all(@list_item, visible: true, minimum: 0, wait: 2).count
|
179
|
-
|
166
|
+
trigger_list
|
180
167
|
num_items
|
181
168
|
end
|
182
169
|
end
|
@@ -200,14 +187,14 @@ module TestCentricity
|
|
200
187
|
# current_color = color_select.get_selected_option
|
201
188
|
#
|
202
189
|
def get_selected_option
|
203
|
-
|
204
|
-
object_not_found_exception(
|
205
|
-
if
|
206
|
-
|
207
|
-
elsif
|
208
|
-
|
190
|
+
@base_object, = find_element
|
191
|
+
object_not_found_exception(@base_object, nil)
|
192
|
+
if @base_object.first(:css, @list_item, minimum: 0)
|
193
|
+
@base_object.first(:css, @selected_item).text
|
194
|
+
elsif @base_object.first(:css, @selected_item, minimum: 0)
|
195
|
+
@base_object.first(:css, @selected_item).text
|
209
196
|
else
|
210
|
-
|
197
|
+
@base_object.first('option[selected]', visible: :all).text
|
211
198
|
end
|
212
199
|
end
|
213
200
|
|
@@ -235,8 +222,8 @@ module TestCentricity
|
|
235
222
|
invoke_siebel_popup
|
236
223
|
sleep(0.5)
|
237
224
|
options = page.all(:xpath, "//li[@class='ui-menu-item']").collect(&:text)
|
238
|
-
|
239
|
-
|
225
|
+
@base_object, = find_element
|
226
|
+
@base_object.native.send_keys(:escape)
|
240
227
|
options
|
241
228
|
end
|
242
229
|
|
@@ -249,8 +236,8 @@ module TestCentricity
|
|
249
236
|
else
|
250
237
|
assert_equal(expected, actual, "Expected list of options in list #{object_ref_message} to be #{expected} but found #{actual}")
|
251
238
|
end
|
252
|
-
|
253
|
-
|
239
|
+
@base_object, = find_element
|
240
|
+
@base_object.native.send_keys(:escape)
|
254
241
|
end
|
255
242
|
|
256
243
|
# Is Siebel JComboBox set to read-only?
|
@@ -260,9 +247,9 @@ module TestCentricity
|
|
260
247
|
# country_select.read_only?
|
261
248
|
#
|
262
249
|
def read_only?
|
263
|
-
|
264
|
-
object_not_found_exception(
|
265
|
-
|
250
|
+
@base_object, = find_element
|
251
|
+
object_not_found_exception(@base_object, nil)
|
252
|
+
!@base_object.native.attribute('readonly')
|
266
253
|
end
|
267
254
|
|
268
255
|
private
|
@@ -284,5 +271,27 @@ module TestCentricity
|
|
284
271
|
obj.select(option, visible: :all)
|
285
272
|
end
|
286
273
|
end
|
274
|
+
|
275
|
+
def trigger_list
|
276
|
+
if @list_trigger.nil?
|
277
|
+
@base_object.click
|
278
|
+
else
|
279
|
+
trigger = find_component(@list_trigger, 'trigger')
|
280
|
+
trigger.click
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
284
|
+
def find_component(component, component_name)
|
285
|
+
begin
|
286
|
+
element = @base_object.find(:css, component, minimum: 0, wait: 1)
|
287
|
+
rescue
|
288
|
+
begin
|
289
|
+
element = page.find(:css, component, minimum: 0, wait: 1)
|
290
|
+
rescue
|
291
|
+
raise "List #{component_name} (#{component}) for selectlist named '#{@name}' (#{locator}) not found"
|
292
|
+
end
|
293
|
+
end
|
294
|
+
element
|
295
|
+
end
|
287
296
|
end
|
288
297
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testcentricity_web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- A.J. Mrozinski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-05-
|
11
|
+
date: 2019-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -325,7 +325,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
325
325
|
requirements:
|
326
326
|
- Capybara, Selenium-WebDriver
|
327
327
|
rubyforge_project:
|
328
|
-
rubygems_version: 2.
|
328
|
+
rubygems_version: 2.7.9
|
329
329
|
signing_key:
|
330
330
|
specification_version: 4
|
331
331
|
summary: A Page Object and Data Object Model Framework for desktop and mobile web
|