robotest 1.0.2

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.
@@ -0,0 +1,82 @@
1
+ module RoboTest
2
+ class MultiLocator
3
+
4
+ attr_accessor :how
5
+ attr_accessor :what
6
+ attr_accessor :options
7
+
8
+ def initialize(
9
+ how,
10
+ what,
11
+ options = {
12
+ "hidden" => false,
13
+ "ajax_load" => false
14
+ }
15
+ )
16
+ @how = how
17
+ @what = what
18
+ @options = options
19
+ end
20
+
21
+ def options(driver = $focus_driver)
22
+ @options
23
+ end
24
+
25
+ def text(driver = $focus_driver)
26
+ element_list = driver.find_elements(self)
27
+ return element_list.map{ |n| n.text }
28
+ end
29
+
30
+ def count(driver = $focus_driver)
31
+ element_list = driver.find_elements(self)
32
+ return element_list.count
33
+ end
34
+
35
+ def attribute(name, driver = $focus_driver)
36
+ element_list = driver.find_elements(self)
37
+ return element_list.map{ |n| n.attribute(name) }
38
+ end
39
+
40
+ def is_present?(driver=$focus_driver)
41
+ driver.driver.manage.timeouts.implicit_wait = 0
42
+ begin
43
+ element_list = driver.driver.find_elements(self.how,self.what)
44
+ return element_list.map{ |n| n.displayed? }
45
+ rescue Exception => e
46
+ driver.driver.manage.timeouts.implicit_wait = $conf["implicit_wait"]
47
+ return false
48
+ ensure
49
+ driver.driver.manage.timeouts.implicit_wait = $conf["implicit_wait"]
50
+ end
51
+ end
52
+
53
+ def is_present_with_wait?(timeout=$conf["implicit_wait"],driver=$focus_driver)
54
+ Wait.wait_for_element(self,timeout,driver)
55
+ is_present?(driver)
56
+ end
57
+
58
+ def is_not_present_with_wait?(timeout=$conf["implicit_wait"],driver=$focus_driver)
59
+ Wait.wait_for_element_hide(self,timeout,driver)
60
+ return is_present?(driver).map{ |q| !q }
61
+ end
62
+
63
+ def to_s
64
+ return "How ===> #{@how}\nWhat ===> #{@what}\nOptions ===> #{@options}"
65
+ end
66
+
67
+ def displayed?(driver = $focus_driver)
68
+ element_list = driver.find_elements(self)
69
+ return element_list.map{ |n| n.displayed? }
70
+ end
71
+
72
+ def enabled?(driver = $focus_driver)
73
+ element_list = driver.find_elements(self)
74
+ return element_list.map{ |n| n.enabled? }
75
+ end
76
+
77
+ def get_elements(driver = $focus_driver)
78
+ driver.find_elements(self)
79
+ end
80
+
81
+ end
82
+ end
@@ -0,0 +1,3 @@
1
+ module RoboTest
2
+ VERSION = '1.0.2'
3
+ end
@@ -0,0 +1,75 @@
1
+ module RoboTest
2
+ module Wait
3
+
4
+ # avoid defining self in def self.some_method -> def some_method
5
+ class << self
6
+
7
+ def wait_for_element(locator, timeout=$conf["implicit_wait"], focus_driver = $focus_driver)
8
+ index=0
9
+ case locator
10
+ when RoboTest::Locator
11
+ while locator.is_present?(focus_driver) == false
12
+ sleep 1
13
+ if index == timeout
14
+ break
15
+ end
16
+ index+=1
17
+ end
18
+
19
+ when RoboTest::MultiLocator
20
+ list = locator.is_present?(focus_driver)
21
+ while list.include?(false)
22
+ sleep 1
23
+ if index == timeout
24
+ break
25
+ end
26
+ index+=1
27
+ end
28
+ end
29
+ end
30
+
31
+ def wait_for_element_hide(locator, timeout=$conf["implicit_wait"], focus_driver = $focus_driver)
32
+ index=0
33
+ case locator
34
+ when RoboTest::Locator
35
+ while locator.is_present?(focus_driver) == true
36
+ sleep 1
37
+ if index == timeout
38
+ break
39
+ end
40
+ index+=1
41
+ end
42
+ when RoboTest::MultiLocator
43
+ list = locator.is_present?(focus_driver)
44
+ while list.include?(true)
45
+ sleep 1
46
+ if index == timeout
47
+ break
48
+ end
49
+ index+=1
50
+ end
51
+ end
52
+ end
53
+
54
+ def wait_for_element!(locator, timeout=$conf["implicit_wait"], focus_driver = $focus_driver)
55
+ wait_for_element(locator, timeout, focus_driver)
56
+ case locator
57
+ when RoboTest::Locator
58
+ raise "Element is not found !!!" unless locator.is_present?
59
+ when RoboTest::MultiLocator
60
+ raise "No element is found !!!" unless locator.is_present?.include?(true)
61
+ end
62
+ end
63
+
64
+ def wait_for_element_hide!(locator, timeout=$conf["implicit_wait"], focus_driver = $focus_driver)
65
+ wait_for_element_hide(locator, timeout, focus_driver)
66
+ case locator
67
+ when RoboTest::Locator
68
+ raise "Element is not hidden !!!" if locator.is_present?
69
+ when RoboTest::MultiLocator
70
+ raise "No element is hidden !!!" if locator.is_present?.include?(true)
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,6 @@
1
+
2
+ # usage example: rake test["test"]
3
+ task :test do |t|
4
+ #any test task
5
+ puts "#{t}"
6
+ end
@@ -0,0 +1,62 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'robotest'
3
+ s.version = '1.0.2'
4
+ s.executables << 'robotest'
5
+ s.date = '2019-01-10'
6
+ s.description = "Framework for Selenium with rspec, parallel_tests and allure in Page Object Model (POM)"
7
+ s.summary = "Web browser Automation Framework using selenium, Rspec, parallel_tests and allure"
8
+ s.authors = ["Naresh Sekar"]
9
+ s.email = 'nareshnavinash@gmail.com'
10
+ # s.cert_chain = ['certs/public_cert.pem']
11
+ # s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/
12
+ s.files = [ "lib/robotest.rb",
13
+ "lib/robotest/driver.rb",
14
+ "lib/robotest/dsl.rb",
15
+ "lib/robotest/locator.rb",
16
+ "lib/robotest/multilocator.rb",
17
+ "lib/robotest/version.rb",
18
+ "lib/robotest/wait.rb",
19
+ "lib/robotest/RoboTest.png",
20
+ "lib/tasks/robotest.rake",
21
+ "Full_Suite/conf/account_credentials.yml",
22
+ "Full_Suite/libraries/constants.rb",
23
+ "Full_Suite/libraries/dsl.rb",
24
+ "Full_Suite/locators/testpage.rb",
25
+ "Full_Suite/pages/testpage.rb",
26
+ "Full_Suite/rake-jobs/rake_jobs.rb",
27
+ "Full_Suite/spec/test_spec.rb",
28
+ "Full_Suite/spec/test_spec_copy.rb",
29
+ "Full_Suite/spec/test_spec_copy_2.rb",
30
+ "Full_Suite/spec/test_spec_copy_3.rb",
31
+ "Full_Suite/spec/spec_helper.rb",
32
+ "Full_Suite/test-data/credentials/test_credentials.conf",
33
+ "Full_Suite/test-data/attachments/attachment_test.yml",
34
+ "Full_Suite/yaml/test.yml",
35
+ "Full_Suite/yaml/test_parallel.yml",
36
+ "Full_Suite/Gemfile",
37
+ "Full_Suite/Rakefile",
38
+ "Full_Suite/README.md",
39
+ "Full_Suite/rspec_parallel",
40
+ "README.md",
41
+ "CONTRIBUTING.md",
42
+ "Rakefile",
43
+ "LICENSE",
44
+ "robotest.gemspec",
45
+ ]
46
+ s.homepage = 'https://nareshnavinashhelp.freshdesk.com'
47
+ s.license = 'GPL-3.0'
48
+ s.metadata = { "source_code_uri" => "https://github.com/nareshnavinash/robotest" }
49
+ s.add_runtime_dependency 'selenium-webdriver', '3.12.0'
50
+ s.add_runtime_dependency 'rspec', '3.7.0'
51
+ s.add_runtime_dependency 'parallel_tests', '2.21.0'
52
+ s.add_runtime_dependency 'parseconfig', '1.0.8'
53
+ s.add_runtime_dependency 'allure-rspec', '0.8.0'
54
+ s.add_runtime_dependency 'require_all', '~> 1.4', '>= 1.4.0'
55
+ s.add_runtime_dependency 'fuubar', '~> 2.2', '>= 2.2.0'
56
+ s.add_runtime_dependency 'rspec_junit_formatter', '~> 0.3.0'
57
+ s.add_runtime_dependency 'headless', '~> 2.3', '>= 2.3.1'
58
+ s.add_runtime_dependency 'os', '~> 0.9.6'
59
+ s.add_runtime_dependency 'pry', '~> 0.11.1'
60
+ s.add_runtime_dependency 'progress_bar', '1.2.0'
61
+ s.add_runtime_dependency 'yaml_extend', '~> 0.2.0'
62
+ end
metadata ADDED
@@ -0,0 +1,281 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: robotest
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Naresh Sekar
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-01-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: selenium-webdriver
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 3.12.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.12.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 3.7.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 3.7.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: parallel_tests
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 2.21.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.21.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: parseconfig
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.8
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.8
69
+ - !ruby/object:Gem::Dependency
70
+ name: allure-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 0.8.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 0.8.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: require_all
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.4'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 1.4.0
93
+ type: :runtime
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '1.4'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.4.0
103
+ - !ruby/object:Gem::Dependency
104
+ name: fuubar
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.2'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 2.2.0
113
+ type: :runtime
114
+ prerelease: false
115
+ version_requirements: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '2.2'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 2.2.0
123
+ - !ruby/object:Gem::Dependency
124
+ name: rspec_junit_formatter
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: 0.3.0
130
+ type: :runtime
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: 0.3.0
137
+ - !ruby/object:Gem::Dependency
138
+ name: headless
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '2.3'
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: 2.3.1
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '2.3'
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 2.3.1
157
+ - !ruby/object:Gem::Dependency
158
+ name: os
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - "~>"
162
+ - !ruby/object:Gem::Version
163
+ version: 0.9.6
164
+ type: :runtime
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: 0.9.6
171
+ - !ruby/object:Gem::Dependency
172
+ name: pry
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - "~>"
176
+ - !ruby/object:Gem::Version
177
+ version: 0.11.1
178
+ type: :runtime
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - "~>"
183
+ - !ruby/object:Gem::Version
184
+ version: 0.11.1
185
+ - !ruby/object:Gem::Dependency
186
+ name: progress_bar
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - '='
190
+ - !ruby/object:Gem::Version
191
+ version: 1.2.0
192
+ type: :runtime
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - '='
197
+ - !ruby/object:Gem::Version
198
+ version: 1.2.0
199
+ - !ruby/object:Gem::Dependency
200
+ name: yaml_extend
201
+ requirement: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - "~>"
204
+ - !ruby/object:Gem::Version
205
+ version: 0.2.0
206
+ type: :runtime
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - "~>"
211
+ - !ruby/object:Gem::Version
212
+ version: 0.2.0
213
+ description: Framework for Selenium with rspec, parallel_tests and allure in Page
214
+ Object Model (POM)
215
+ email: nareshnavinash@gmail.com
216
+ executables:
217
+ - robotest
218
+ extensions: []
219
+ extra_rdoc_files: []
220
+ files:
221
+ - CONTRIBUTING.md
222
+ - Full_Suite/Gemfile
223
+ - Full_Suite/README.md
224
+ - Full_Suite/Rakefile
225
+ - Full_Suite/conf/account_credentials.yml
226
+ - Full_Suite/libraries/constants.rb
227
+ - Full_Suite/libraries/dsl.rb
228
+ - Full_Suite/locators/testpage.rb
229
+ - Full_Suite/pages/testpage.rb
230
+ - Full_Suite/rake-jobs/rake_jobs.rb
231
+ - Full_Suite/rspec_parallel
232
+ - Full_Suite/spec/spec_helper.rb
233
+ - Full_Suite/spec/test_spec.rb
234
+ - Full_Suite/spec/test_spec_copy.rb
235
+ - Full_Suite/spec/test_spec_copy_2.rb
236
+ - Full_Suite/spec/test_spec_copy_3.rb
237
+ - Full_Suite/test-data/attachments/attachment_test.yml
238
+ - Full_Suite/test-data/credentials/test_credentials.conf
239
+ - Full_Suite/yaml/test.yml
240
+ - Full_Suite/yaml/test_parallel.yml
241
+ - LICENSE
242
+ - README.md
243
+ - Rakefile
244
+ - bin/robotest
245
+ - lib/robotest.rb
246
+ - lib/robotest/RoboTest.png
247
+ - lib/robotest/driver.rb
248
+ - lib/robotest/dsl.rb
249
+ - lib/robotest/locator.rb
250
+ - lib/robotest/multilocator.rb
251
+ - lib/robotest/version.rb
252
+ - lib/robotest/wait.rb
253
+ - lib/tasks/robotest.rake
254
+ - robotest.gemspec
255
+ homepage: https://nareshnavinashhelp.freshdesk.com
256
+ licenses:
257
+ - GPL-3.0
258
+ metadata:
259
+ source_code_uri: https://github.com/nareshnavinash/robotest
260
+ post_install_message:
261
+ rdoc_options: []
262
+ require_paths:
263
+ - lib
264
+ required_ruby_version: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ version: '0'
269
+ required_rubygems_version: !ruby/object:Gem::Requirement
270
+ requirements:
271
+ - - ">="
272
+ - !ruby/object:Gem::Version
273
+ version: '0'
274
+ requirements: []
275
+ rubyforge_project:
276
+ rubygems_version: 2.7.6
277
+ signing_key:
278
+ specification_version: 4
279
+ summary: Web browser Automation Framework using selenium, Rspec, parallel_tests and
280
+ allure
281
+ test_files: []