appom 1.0.3 → 1.1.0
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 +4 -4
- data/lib/appom/element_container.rb +59 -24
- data/lib/appom/element_finder.rb +61 -11
- data/lib/appom/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2853e5118fd75268ff6297448f91e01994b2f4a06a22e00cd92963dc08215b0
|
4
|
+
data.tar.gz: d911296d61b4568e3e9f73453bd931aba4647a86e81b4fc3bf20c92c7c26ae0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a822cac2b1155cd1aa21eeb6263f361e669f0c90911ffd444b041d37ed2fb6ec03a054d5d2bd87a2a21f6f097ebb80dfd98c661aac5c1a44fa135e0ba9e2d597
|
7
|
+
data.tar.gz: 3cfaea41cb2cdb4ec8c337f53d8342d0153c2e8483412d0c43cfdbbd0a74f4b1f1a18afc9ba64030885f72ad228c7c183a5ac32ec7c783fe0221587e574b1c22
|
@@ -14,6 +14,38 @@ module Appom
|
|
14
14
|
raise Appom::UnsupportedBlockError
|
15
15
|
end
|
16
16
|
|
17
|
+
# # Check container has element
|
18
|
+
# def not_contain_element(element_name)
|
19
|
+
# element_params = send("#{element_name}_params")
|
20
|
+
# wait_until('no element exists', *element_params)
|
21
|
+
# end
|
22
|
+
#
|
23
|
+
# # Check container has elements
|
24
|
+
# def contain_elements(element_names)
|
25
|
+
# element_names.each do |element|
|
26
|
+
# contain_element(element)
|
27
|
+
# end
|
28
|
+
# end
|
29
|
+
#
|
30
|
+
# Check container has element
|
31
|
+
# def contain_element(element_name)
|
32
|
+
# element_params = send("#{element_name}_params")
|
33
|
+
# puts "Elemenet params = #{element_params}"
|
34
|
+
# wait_until('at least one element exists', *element_params)
|
35
|
+
# end
|
36
|
+
#
|
37
|
+
# # Check container has element and element is disabled
|
38
|
+
# def contain_disabled_element(element_name)
|
39
|
+
# element_params = send("#{element_name}_params")
|
40
|
+
# wait_until('element disable', *element_params)
|
41
|
+
# end
|
42
|
+
#
|
43
|
+
# # Check container has element and element is enabled
|
44
|
+
# def contain_enableb_element(element_name)
|
45
|
+
# element_params = send("#{element_name}_params")
|
46
|
+
# wait_until('element enable', *element_params)
|
47
|
+
# end
|
48
|
+
|
17
49
|
##
|
18
50
|
# Options re-combiner. This takes the original inputs and combines
|
19
51
|
# them such that there is only one hash passed as a final argument
|
@@ -46,11 +78,16 @@ module Appom
|
|
46
78
|
build_element(name, *args) do
|
47
79
|
define_method(name) do |*runtime_args, &block|
|
48
80
|
raise_if_block(self, name, !block.nil?, :element)
|
49
|
-
|
81
|
+
if text.nil?
|
82
|
+
_find(*merge_args(args, runtime_args))
|
83
|
+
else
|
84
|
+
find_element_has_text(text, *merge_args(args, runtime_args))
|
85
|
+
end
|
50
86
|
end
|
51
87
|
|
52
|
-
create_get_element_params(name, args)
|
53
88
|
create_verify_element_text(name, text, args)
|
89
|
+
|
90
|
+
create_get_element_params(name, find_args)
|
54
91
|
end
|
55
92
|
end
|
56
93
|
|
@@ -87,8 +124,6 @@ module Appom
|
|
87
124
|
|
88
125
|
create_get_element_params(name, find_args)
|
89
126
|
end
|
90
|
-
|
91
|
-
|
92
127
|
end
|
93
128
|
|
94
129
|
def sections(name, *args, &block)
|
@@ -190,21 +225,6 @@ module Appom
|
|
190
225
|
end
|
191
226
|
end
|
192
227
|
|
193
|
-
##
|
194
|
-
# Check element non-existent
|
195
|
-
# We will try to find all elements with *find_args
|
196
|
-
# Condition is pass when response is empty
|
197
|
-
#
|
198
|
-
def create_nonexistence_checker(element_name, *find_args)
|
199
|
-
method_name = "wait_until_has_no_#{element_name}"
|
200
|
-
create_helper_method(method_name, *find_args) do
|
201
|
-
define_method(method_name) do |*runtime_args|
|
202
|
-
args = merge_args(find_args, runtime_args)
|
203
|
-
wait_check_until_empty(*args)
|
204
|
-
end
|
205
|
-
end
|
206
|
-
end
|
207
|
-
|
208
228
|
##
|
209
229
|
# Try to get all elements until not get empty array
|
210
230
|
#
|
@@ -233,28 +253,44 @@ module Appom
|
|
233
253
|
end
|
234
254
|
end
|
235
255
|
|
256
|
+
|
236
257
|
##
|
237
|
-
#
|
258
|
+
# Check element non-existent
|
259
|
+
# We will try to find all elements with *find_args
|
260
|
+
# Condition is pass when response is empty
|
261
|
+
#
|
262
|
+
def create_nonexistence_checker(element_name, *find_args)
|
263
|
+
method_name = "wait_until_has_no_#{element_name}"
|
264
|
+
create_helper_method(method_name, *find_args) do
|
265
|
+
define_method(method_name) do |*runtime_args|
|
266
|
+
args = merge_args(find_args, runtime_args)
|
267
|
+
wait_check_until_empty(*args)
|
268
|
+
end
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
272
|
+
##
|
273
|
+
# Wait until element will be enable
|
238
274
|
#
|
239
275
|
def create_enable_checker(element_name, *find_args)
|
240
276
|
method_name = "wait_until_#{element_name}_enable"
|
241
277
|
create_helper_method(method_name, *find_args) do
|
242
278
|
define_method(method_name) do |*runtime_args|
|
243
279
|
args = merge_args(find_args, runtime_args)
|
244
|
-
|
280
|
+
wait_until('element enabled', *args)
|
245
281
|
end
|
246
282
|
end
|
247
283
|
end
|
248
284
|
|
249
285
|
##
|
250
|
-
# Wait until an element will be
|
286
|
+
# Wait until an element will be disable
|
251
287
|
#
|
252
288
|
def create_disable_checker(element_name, *find_args)
|
253
289
|
method_name = "wait_until_#{element_name}_disable"
|
254
290
|
create_helper_method(method_name, *find_args) do
|
255
291
|
define_method(method_name) do |*runtime_args|
|
256
292
|
args = merge_args(find_args, runtime_args)
|
257
|
-
|
293
|
+
wait_until('element disabled', *args)
|
258
294
|
end
|
259
295
|
end
|
260
296
|
end
|
@@ -360,7 +396,6 @@ module Appom
|
|
360
396
|
def extract_search_arguments(args)
|
361
397
|
args if args && !args.empty?
|
362
398
|
end
|
363
|
-
|
364
399
|
end
|
365
400
|
end
|
366
401
|
end
|
data/lib/appom/element_finder.rb
CHANGED
@@ -33,9 +33,32 @@ module Appom
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
+
|
37
|
+
|
38
|
+
##
|
39
|
+
# Wait until an element will be enable
|
40
|
+
#
|
41
|
+
def wait_until_element_enabled(*find_args)
|
42
|
+
wait = Wait.new(timeout: Appom.max_wait_time)
|
43
|
+
wait.until { page.find_element(*find_args).enabled? }
|
44
|
+
end
|
45
|
+
|
46
|
+
##
|
47
|
+
# Wait until an element will be disable
|
48
|
+
#
|
49
|
+
def wait_until_element_disabled(*find_args)
|
50
|
+
wait = Wait.new(timeout: Appom.max_wait_time)
|
51
|
+
wait.until do !page.
|
52
|
+
find_element(*find_args).enabled?
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
36
59
|
##
|
37
60
|
# Use wait to get elements
|
38
|
-
# Before timeout we will try to find elements until response is not empty
|
61
|
+
# Before timeout we will try to find elements until response return array is not empty
|
39
62
|
#
|
40
63
|
def wait_until_get_not_empty(*find_args)
|
41
64
|
wait = Wait.new(timeout: Appom.max_wait_time)
|
@@ -50,20 +73,47 @@ module Appom
|
|
50
73
|
end
|
51
74
|
end
|
52
75
|
|
53
|
-
|
54
|
-
#
|
55
|
-
|
56
|
-
def wait_until_element_enabled(*find_args)
|
76
|
+
# Find element with has text match with `text` value
|
77
|
+
# If not find element will raise error
|
78
|
+
def find_element_has_text(text, *find_args)
|
57
79
|
wait = Wait.new(timeout: Appom.max_wait_time)
|
58
|
-
wait.until
|
80
|
+
wait.until do
|
81
|
+
elements = page.find_elements(*find_args)
|
82
|
+
is_found = false
|
83
|
+
elements.each do |element|
|
84
|
+
element_text = element.text
|
85
|
+
if element_text == text
|
86
|
+
return element
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
if !is_found
|
91
|
+
raise Appom::ElementsEmptyError, "Not found element with text #{text}"
|
92
|
+
end
|
93
|
+
return result
|
94
|
+
end
|
59
95
|
end
|
60
96
|
|
61
|
-
|
62
|
-
#
|
63
|
-
|
64
|
-
def wait_until_element_disabled(*find_args)
|
97
|
+
# Function is used to check
|
98
|
+
# Note: Function WILL NOT RETURN ELEMENT
|
99
|
+
def wait_until(type, *find_args)
|
65
100
|
wait = Wait.new(timeout: Appom.max_wait_time)
|
66
|
-
wait.until
|
101
|
+
wait.until do
|
102
|
+
case type
|
103
|
+
# Function only return true if element enabled or raise an error if time out
|
104
|
+
when 'element enable'
|
105
|
+
page.find_element(*find_args).enabled?
|
106
|
+
# Function only return true if element disabled or raise an error if time out
|
107
|
+
when 'element disable'
|
108
|
+
!page.find_element(*find_args).enabled?
|
109
|
+
# Function only return true if we can find at leat one element (array is not empty) or raise error
|
110
|
+
when 'at least one element exists'
|
111
|
+
!page.find_elements(*find_args).empty?
|
112
|
+
# Function only return true if we can't find at leat one element (array is empty) or raise error
|
113
|
+
when 'no element exists'
|
114
|
+
page.find_elements(*find_args).empty?
|
115
|
+
end
|
116
|
+
end
|
67
117
|
end
|
68
118
|
end
|
69
119
|
end
|
data/lib/appom/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harry.Tran
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: appium_lib
|
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
90
|
version: '0'
|
91
91
|
requirements: []
|
92
92
|
rubyforge_project:
|
93
|
-
rubygems_version: 2.7.
|
93
|
+
rubygems_version: 2.7.9
|
94
94
|
signing_key:
|
95
95
|
specification_version: 4
|
96
96
|
summary: A Page Object Model for Appium
|