robotest 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []