mini_autobot 0.2.2 → 0.3.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/README.md +2 -3
- data/lib/mini_autobot/utils/page_object_helper.rb +30 -23
- data/lib/mini_autobot/version.rb +1 -1
- data/mini_autobot.gemspec +0 -3
- metadata +2 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ba694542ad108b33eeb0567a2b616ef6d4b9e9e
|
4
|
+
data.tar.gz: 000b15dcc2cadeccde5f6c3e87db3619fba9644e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c8e023d8b62c66907ce2ca10a9a587bdc1923437d00b8af3aedae9c3a9d76aecaa9f8d76052897c0771f008046e8c84c56a8d02fff5b37613d6763b0df09411
|
7
|
+
data.tar.gz: 687f7624ba12ab7380c44e623fe9a90338a222aa490275fe54171fe0982fa6ba9aef70c8faca69683c4e0d3e37eed2ab2063bd94434be7d67f1b9b7b16367e3d
|
data/README.md
CHANGED
@@ -79,7 +79,6 @@ A typical config file structure looks like this:
|
|
79
79
|
│ ├── ag_qa.yml
|
80
80
|
│ ├── rent_ci.yml
|
81
81
|
│ └── rent_qa.yml
|
82
|
-
├── native_app_google_client.json
|
83
82
|
├── test_suite.yml
|
84
83
|
└── tests.yml
|
85
84
|
|
@@ -101,7 +100,7 @@ It defines two things:
|
|
101
100
|
test_cases and page_objects are located, eg. web_tests, xxx/yyyy/tests;
|
102
101
|
2. multi-host flag: false means test_cases dir is directly under tests_dir,
|
103
102
|
true means there's one more layer in middle: tests_dir/[hosts]/.
|
104
|
-
|
103
|
+
|
105
104
|
#### Connector Profile
|
106
105
|
|
107
106
|
A connector profile is a regular YAML file in a specific directory, which
|
@@ -637,4 +636,4 @@ the page.
|
|
637
636
|
## License
|
638
637
|
|
639
638
|
MiniAutobot is released under the MIT License. See the bundled LICENSE file for
|
640
|
-
details.
|
639
|
+
details.
|
@@ -147,7 +147,7 @@ module MiniAutobot
|
|
147
147
|
body["passed"] = passed? unless skipped?
|
148
148
|
RestClient.put(http_auth, body.to_json, {:content_type => "application/json"})
|
149
149
|
end
|
150
|
-
|
150
|
+
|
151
151
|
def connector_is_saucelabs?
|
152
152
|
MiniAutobot.settings.connector.include? 'saucelabs'
|
153
153
|
end
|
@@ -195,6 +195,13 @@ module MiniAutobot
|
|
195
195
|
end
|
196
196
|
end
|
197
197
|
|
198
|
+
def with_url_change_wait(&block)
|
199
|
+
starting_url = @driver.current_url
|
200
|
+
block.call
|
201
|
+
wait(timeout: 15, message: 'Timeout waiting for URL to change')
|
202
|
+
.until { @driver.current_url != starting_url }
|
203
|
+
end
|
204
|
+
|
198
205
|
# Check if a web element exists on page or not, without wait
|
199
206
|
def is_element_present?(how, what, driver = nil)
|
200
207
|
element_appeared?(how, what, driver)
|
@@ -205,6 +212,28 @@ module MiniAutobot
|
|
205
212
|
element_appeared?(how, what, driver, check_display = true)
|
206
213
|
end
|
207
214
|
|
215
|
+
def wait_for_element_to_display(how, what, friendly_name = "element")
|
216
|
+
wait(timeout: 15, message: "Timeout waiting for #{friendly_name} to display")
|
217
|
+
.until {is_element_present_and_displayed?(how, what)}
|
218
|
+
end
|
219
|
+
|
220
|
+
def wait_for_element_to_be_present(how, what, friendly_name = "element")
|
221
|
+
wait(timeout: 15, message: "Timeout waiting for #{friendly_name} to be present")
|
222
|
+
.until {is_element_present?(how, what)}
|
223
|
+
end
|
224
|
+
|
225
|
+
# Useful when you want to wait for the status of an element attribute to change
|
226
|
+
# Example: the class attribute of <body> changes to include 'logged-in' when a user signs in to rent.com
|
227
|
+
# Example usage: wait_for_attribute_status_change(:css, 'body', 'class', 'logged-in', 'sign in')
|
228
|
+
def wait_for_attribute_to_have_value(how, what, attribute, value, friendly_name = "attribute")
|
229
|
+
wait(timeout: 15, message: "Timeout waiting for #{friendly_name} status to update")
|
230
|
+
.until { driver.find_element(how, what).attribute(attribute).include?(value) rescue retry }
|
231
|
+
end
|
232
|
+
|
233
|
+
def current_page(calling_page)
|
234
|
+
calling_page.class.to_s.split('::').last.downcase
|
235
|
+
end
|
236
|
+
|
208
237
|
private
|
209
238
|
|
210
239
|
# @param eg. (:css, 'button.cancel') or (*BUTTON_SUBMIT_SEARCH)
|
@@ -230,28 +259,6 @@ module MiniAutobot
|
|
230
259
|
result
|
231
260
|
end
|
232
261
|
|
233
|
-
def wait_for_element_to_display(how, what, friendly_name = "element")
|
234
|
-
wait(timeout: 15, message: "Timeout waiting for #{friendly_name} to display")
|
235
|
-
.until {is_element_present_and_displayed?(how, what)}
|
236
|
-
end
|
237
|
-
|
238
|
-
def wait_for_element_to_be_present(how, what, friendly_name = "element")
|
239
|
-
wait(timeout: 15, message: "Timeout waiting for #{friendly_name} to be present")
|
240
|
-
.until {is_element_present?(how, what)}
|
241
|
-
end
|
242
|
-
|
243
|
-
# Useful when you want to wait for the status of an element attribute to change
|
244
|
-
# Example: the class attribute of <body> changes to include 'logged-in' when a user signs in to rent.com
|
245
|
-
# Example usage: wait_for_attribute_status_change(:css, 'body', 'class', 'logged-in', 'sign in')
|
246
|
-
def wait_for_attribute_to_have_value(how, what, attribute, value, friendly_name = "attribute")
|
247
|
-
wait(timeout: 15, message: "Timeout waiting for #{friendly_name} status to update")
|
248
|
-
.until { driver.find_element(how, what).attribute(attribute).include?(value) rescue retry }
|
249
|
-
end
|
250
|
-
|
251
|
-
def current_page(calling_page)
|
252
|
-
calling_page.class.to_s.split('::').last.downcase
|
253
|
-
end
|
254
|
-
|
255
262
|
end
|
256
263
|
|
257
264
|
end
|
data/lib/mini_autobot/version.rb
CHANGED
data/mini_autobot.gemspec
CHANGED
@@ -21,9 +21,6 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
s.add_dependency 'activesupport', '~> 4.2'
|
23
23
|
s.add_dependency 'faker', '~> 1.4'
|
24
|
-
s.add_dependency 'google-api-client', '~> 0.8'
|
25
|
-
s.add_dependency 'google_drive', '~> 1.0'
|
26
|
-
s.add_dependency 'mail', '~> 2.6'
|
27
24
|
s.add_dependency 'minitap', '~> 0.5.3'
|
28
25
|
s.add_dependency 'pry', '~> 0.10'
|
29
26
|
s.add_dependency 'minitest', '~>5.4.0'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mini_autobot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ripta Pasay
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-11-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -40,48 +40,6 @@ dependencies:
|
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '1.4'
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: google-api-client
|
45
|
-
requirement: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '0.8'
|
50
|
-
type: :runtime
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '0.8'
|
57
|
-
- !ruby/object:Gem::Dependency
|
58
|
-
name: google_drive
|
59
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - "~>"
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '1.0'
|
64
|
-
type: :runtime
|
65
|
-
prerelease: false
|
66
|
-
version_requirements: !ruby/object:Gem::Requirement
|
67
|
-
requirements:
|
68
|
-
- - "~>"
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: '1.0'
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: mail
|
73
|
-
requirement: !ruby/object:Gem::Requirement
|
74
|
-
requirements:
|
75
|
-
- - "~>"
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '2.6'
|
78
|
-
type: :runtime
|
79
|
-
prerelease: false
|
80
|
-
version_requirements: !ruby/object:Gem::Requirement
|
81
|
-
requirements:
|
82
|
-
- - "~>"
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: '2.6'
|
85
43
|
- !ruby/object:Gem::Dependency
|
86
44
|
name: minitap
|
87
45
|
requirement: !ruby/object:Gem::Requirement
|