testcentricity_web 1.0.16 → 1.0.17
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/.gitignore +0 -0
- data/.rubocop.yml +41 -0
- data/.yardopts +0 -0
- data/Gemfile +0 -0
- data/LICENSE.txt +0 -0
- data/README.md +9 -3
- data/Rakefile +0 -0
- data/lib/devices/devices.yml +0 -0
- data/lib/testcentricity_web.rb +16 -6
- data/lib/testcentricity_web/browser_helper.rb +6 -6
- data/lib/testcentricity_web/elements/button.rb +0 -0
- data/lib/testcentricity_web/elements/checkbox.rb +4 -4
- data/lib/testcentricity_web/elements/file_field.rb +1 -1
- data/lib/testcentricity_web/elements/image.rb +1 -1
- data/lib/testcentricity_web/elements/label.rb +0 -0
- data/lib/testcentricity_web/elements/link.rb +0 -0
- data/lib/testcentricity_web/elements/list.rb +5 -5
- data/lib/testcentricity_web/elements/radio.rb +3 -3
- data/lib/testcentricity_web/elements/select_list.rb +16 -16
- data/lib/testcentricity_web/elements/table.rb +3 -4
- data/lib/testcentricity_web/elements/textfield.rb +4 -4
- data/lib/testcentricity_web/environment.rb +30 -2
- data/lib/testcentricity_web/excel_helper.rb +12 -12
- data/lib/testcentricity_web/exception_queue_helper.rb +1 -1
- data/lib/testcentricity_web/page_objects_helper.rb +102 -102
- data/lib/testcentricity_web/page_sections_helper.rb +112 -112
- data/lib/testcentricity_web/siebel_open_ui_helper.rb +1 -1
- data/lib/testcentricity_web/ui_elements_helper.rb +45 -45
- data/lib/testcentricity_web/utility_helpers.rb +0 -0
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/webdriver_helper.rb +79 -70
- data/lib/testcentricity_web/world_extensions.rb +0 -0
- data/testcentricity_web.gemspec +1 -0
- metadata +5 -3
File without changes
|
@@ -11,38 +11,38 @@ module TestCentricity
|
|
11
11
|
browser = ENV['WEB_BROWSER']
|
12
12
|
|
13
13
|
# assume that we're testing within a local desktop web browser
|
14
|
-
Environ.
|
15
|
-
Environ.
|
16
|
-
Environ.
|
17
|
-
Environ.
|
14
|
+
Environ.platform = :desktop
|
15
|
+
Environ.browser = browser
|
16
|
+
Environ.device = false
|
17
|
+
Environ.device_type = 'browser'
|
18
18
|
|
19
19
|
case browser.downcase.to_sym
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
20
|
+
when :appium
|
21
|
+
initialize_appium
|
22
|
+
context = 'mobile device emulator'
|
23
|
+
when :browserstack
|
24
|
+
initialize_browserstack
|
25
|
+
context = 'Browserstack cloud service'
|
26
|
+
when :crossbrowser
|
27
|
+
initialize_crossbrowser
|
28
|
+
context = 'CrossBrowserTesting cloud service'
|
29
|
+
when :poltergeist
|
30
|
+
initialize_poltergeist
|
31
|
+
context = 'PhantomJS'
|
32
|
+
when :saucelabs
|
33
|
+
initialize_saucelabs
|
34
|
+
context = 'Sauce Labs cloud service'
|
35
|
+
when :testingbot
|
36
|
+
initialize_testingbot
|
37
|
+
context = 'TestingBot cloud service'
|
38
|
+
else
|
39
|
+
if ENV['SELENIUM'] == 'remote'
|
40
|
+
initialize_remote
|
41
|
+
context = 'Selenium Grid2'
|
38
42
|
else
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
else
|
43
|
-
initialize_local_browser
|
44
|
-
context = 'local instance'
|
45
|
-
end
|
43
|
+
initialize_local_browser
|
44
|
+
context = 'local instance'
|
45
|
+
end
|
46
46
|
end
|
47
47
|
|
48
48
|
# set browser window size only if testing with a desktop web browser
|
@@ -50,7 +50,7 @@ module TestCentricity
|
|
50
50
|
initialize_browser_size
|
51
51
|
end
|
52
52
|
|
53
|
-
puts "Using #{Environ.browser
|
53
|
+
puts "Using #{Environ.browser} browser via #{context}"
|
54
54
|
end
|
55
55
|
|
56
56
|
def self.set_domain(url)
|
@@ -60,30 +60,39 @@ module TestCentricity
|
|
60
60
|
# Set the WebDriver path for Chrome, IE, or Edge browsers
|
61
61
|
def self.set_webdriver_path(project_path)
|
62
62
|
path_to_driver = nil
|
63
|
+
# check for existence of /webdrivers or /features/support/drivers folders
|
64
|
+
base_path = 'features/support/drivers'
|
65
|
+
unless File.directory?(File.join(project_path, base_path))
|
66
|
+
base_path = 'webdrivers'
|
67
|
+
unless File.directory?(File.join(project_path, base_path))
|
68
|
+
raise 'Could not find WebDriver files in /webdrivers or /features/support/drivers folders'
|
69
|
+
end
|
70
|
+
end
|
71
|
+
# set WebDriver path based on browser and operating system
|
63
72
|
case ENV['WEB_BROWSER'].downcase.to_sym
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
73
|
+
when :chrome
|
74
|
+
if OS.osx?
|
75
|
+
path_to_driver = 'mac/chromedriver'
|
76
|
+
elsif OS.windows?
|
77
|
+
path_to_driver = 'windows/chromedriver.exe'
|
78
|
+
end
|
79
|
+
Selenium::WebDriver::Chrome.driver_path = File.join(project_path, base_path, path_to_driver)
|
80
|
+
when :ie
|
81
|
+
path_to_driver = 'windows/IEDriverServer.exe'
|
82
|
+
Selenium::WebDriver::IE.driver_path = File.join(project_path, base_path, path_to_driver)
|
83
|
+
when :edge
|
84
|
+
path_to_driver = 'windows/MicrosoftWebDriver.exe'
|
85
|
+
Selenium::WebDriver::Edge.driver_path = File.join(project_path, base_path, path_to_driver)
|
77
86
|
end
|
78
|
-
puts "The webdriver path is: #{path_to_driver}" unless path_to_driver.nil?
|
87
|
+
puts "The webdriver path is: #{File.join(project_path, base_path, path_to_driver)}" unless path_to_driver.nil?
|
79
88
|
end
|
80
89
|
|
81
90
|
private
|
82
91
|
|
83
92
|
def self.initialize_appium
|
84
|
-
Environ.
|
85
|
-
Environ.
|
86
|
-
Environ.
|
93
|
+
Environ.device = true
|
94
|
+
Environ.platform = :mobile
|
95
|
+
Environ.device_type = ENV['APP_DEVICE']
|
87
96
|
Capybara.default_driver = :appium
|
88
97
|
endpoint = 'http://localhost:4723/wd/hub'
|
89
98
|
desired_capabilities = {
|
@@ -120,8 +129,8 @@ module TestCentricity
|
|
120
129
|
Capybara::Selenium::Driver.new(app, :browser => browser.to_sym)
|
121
130
|
else
|
122
131
|
user_agent = Browsers.mobile_device_agent(browser)
|
123
|
-
Environ.
|
124
|
-
Environ.
|
132
|
+
Environ.platform = :mobile
|
133
|
+
Environ.device_type = Browsers.mobile_device_name(browser)
|
125
134
|
ENV['HOST_BROWSER'] ? host_browser = ENV['HOST_BROWSER'].downcase.to_sym : host_browser = :firefox
|
126
135
|
case host_browser
|
127
136
|
when :firefox
|
@@ -140,14 +149,14 @@ module TestCentricity
|
|
140
149
|
def self.initialize_browserstack
|
141
150
|
browser = ENV['BS_BROWSER']
|
142
151
|
|
143
|
-
endpoint = "http://#{ENV['BS_USERNAME']}:#{ENV['BS_AUTHKEY']}@hub.browserstack.com/wd/hub"
|
152
|
+
endpoint = "http://#{ENV['BS_USERNAME']}:#{ENV['BS_AUTHKEY']}@hub-cloud.browserstack.com/wd/hub"
|
144
153
|
Capybara.register_driver :browserstack do |app|
|
145
154
|
capabilities = Selenium::WebDriver::Remote::Capabilities.new
|
146
155
|
|
147
156
|
if ENV['BS_OS']
|
148
157
|
capabilities['os'] = ENV['BS_OS']
|
149
158
|
capabilities['os_version'] = ENV['BS_OS_VERSION']
|
150
|
-
Environ.
|
159
|
+
Environ.os = "#{ENV['BS_OS']} #{ENV['BS_OS_VERSION']}"
|
151
160
|
capabilities['browser'] = browser || 'chrome'
|
152
161
|
capabilities['browser_version'] = ENV['BS_VERSION'] if ENV['BS_VERSION']
|
153
162
|
capabilities['resolution'] = ENV['RESOLUTION'] if ENV['RESOLUTION']
|
@@ -155,9 +164,9 @@ module TestCentricity
|
|
155
164
|
capabilities[:platform] = ENV['BS_PLATFORM']
|
156
165
|
capabilities[:browserName] = browser
|
157
166
|
capabilities['device'] = ENV['BS_DEVICE'] if ENV['BS_DEVICE']
|
158
|
-
Environ.
|
159
|
-
Environ.
|
160
|
-
Environ.
|
167
|
+
Environ.platform = :mobile
|
168
|
+
Environ.device = true
|
169
|
+
Environ.device_type = ENV['BS_DEVICE']
|
161
170
|
capabilities['deviceOrientation'] = ENV['ORIENTATION'] if ENV['ORIENTATION']
|
162
171
|
end
|
163
172
|
|
@@ -177,7 +186,7 @@ module TestCentricity
|
|
177
186
|
when :ie
|
178
187
|
capabilities['ie.ensureCleanSession'] = 'true'
|
179
188
|
capabilities['ie.browserCommandLineSwitches'] = 'true'
|
180
|
-
capabilities['nativeEvents'] ='true'
|
189
|
+
capabilities['nativeEvents'] = 'true'
|
181
190
|
when :safari
|
182
191
|
capabilities['cleanSession'] = 'true'
|
183
192
|
when :iphone, :ipad
|
@@ -187,7 +196,7 @@ module TestCentricity
|
|
187
196
|
Capybara::Selenium::Driver.new(app, :browser => :remote, :url => endpoint, :desired_capabilities => capabilities)
|
188
197
|
end
|
189
198
|
|
190
|
-
Environ.
|
199
|
+
Environ.browser = browser
|
191
200
|
|
192
201
|
Capybara.default_driver = :browserstack
|
193
202
|
Capybara.run_server = false
|
@@ -205,17 +214,17 @@ module TestCentricity
|
|
205
214
|
capabilities['screen_resolution'] = ENV['RESOLUTION'] if ENV['RESOLUTION']
|
206
215
|
if ENV['CB_OS']
|
207
216
|
capabilities['os_api_name'] = ENV['CB_OS']
|
208
|
-
Environ.
|
217
|
+
Environ.platform = :desktop
|
209
218
|
elsif ENV['CB_PLATFORM']
|
210
219
|
capabilities['os_api_name'] = ENV['CB_PLATFORM']
|
211
|
-
Environ.
|
212
|
-
Environ.
|
213
|
-
Environ.
|
220
|
+
Environ.device_type = ENV['CB_PLATFORM']
|
221
|
+
Environ.device = true
|
222
|
+
Environ.platform = :mobile
|
214
223
|
end
|
215
224
|
Capybara::Selenium::Driver.new(app, :browser => :remote, :url => endpoint, :desired_capabilities => capabilities)
|
216
225
|
end
|
217
226
|
|
218
|
-
Environ.
|
227
|
+
Environ.browser = browser
|
219
228
|
|
220
229
|
Capybara.default_driver = :crossbrowser
|
221
230
|
Capybara.run_server = false
|
@@ -269,20 +278,20 @@ module TestCentricity
|
|
269
278
|
capabilities['recordVideo'] = ENV['RECORD_VIDEO'] if ENV['RECORD_VIDEO']
|
270
279
|
if ENV['SL_OS']
|
271
280
|
capabilities['platform'] = ENV['SL_OS']
|
272
|
-
Environ.
|
281
|
+
Environ.platform = :desktop
|
273
282
|
elsif ENV['SL_PLATFORM']
|
274
283
|
capabilities['platform'] = ENV['SL_PLATFORM']
|
275
284
|
capabilities['deviceName'] = ENV['SL_DEVICE']
|
276
285
|
capabilities['deviceType'] = ENV['SL_DEVICE_TYPE'] if ENV['SL_DEVICE_TYPE']
|
277
286
|
capabilities['deviceOrientation'] = ENV['ORIENTATION'] if ENV['ORIENTATION']
|
278
|
-
Environ.
|
279
|
-
Environ.
|
287
|
+
Environ.device_type = ENV['SL_DEVICE']
|
288
|
+
Environ.platform = :mobile
|
280
289
|
end
|
281
290
|
|
282
291
|
Capybara::Selenium::Driver.new(app, :browser => :remote, :url => endpoint, :desired_capabilities => capabilities)
|
283
292
|
end
|
284
293
|
|
285
|
-
Environ.
|
294
|
+
Environ.browser = browser
|
286
295
|
|
287
296
|
Capybara.default_driver = :saucelabs
|
288
297
|
Capybara.run_server = false
|
@@ -308,17 +317,17 @@ module TestCentricity
|
|
308
317
|
capabilities['orientation'] = ENV['ORIENTATION'] if ENV['ORIENTATION']
|
309
318
|
capabilities['platformName'] = ENV['TB_PLATFORM']
|
310
319
|
capabilities['deviceName'] = ENV['TB_DEVICE']
|
311
|
-
Environ.
|
312
|
-
Environ.
|
313
|
-
Environ.
|
320
|
+
Environ.device_type = ENV['TB_DEVICE']
|
321
|
+
Environ.device = true
|
322
|
+
Environ.platform = :mobile
|
314
323
|
else
|
315
|
-
Environ.
|
324
|
+
Environ.platform = :desktop
|
316
325
|
end
|
317
326
|
|
318
327
|
Capybara::Selenium::Driver.new(app, :browser => :remote, :url => endpoint, :desired_capabilities => capabilities)
|
319
328
|
end
|
320
329
|
|
321
|
-
Environ.
|
330
|
+
Environ.browser = browser
|
322
331
|
|
323
332
|
Capybara.default_driver = :testingbot
|
324
333
|
Capybara.run_server = false
|
File without changes
|
data/testcentricity_web.gemspec
CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
26
26
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
27
27
|
spec.require_paths = ['lib']
|
28
|
+
spec.requirements << 'Capybara, Selenium-WebDriver'
|
28
29
|
|
29
30
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
30
31
|
spec.add_development_dependency 'rake'
|
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: 1.0.
|
4
|
+
version: 1.0.17
|
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: 2016-
|
11
|
+
date: 2016-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -182,6 +182,7 @@ files:
|
|
182
182
|
- ".idea/misc.xml"
|
183
183
|
- ".idea/modules.xml"
|
184
184
|
- ".idea/vcs.xml"
|
185
|
+
- ".rubocop.yml"
|
185
186
|
- ".yardopts"
|
186
187
|
- Gemfile
|
187
188
|
- LICENSE.txt
|
@@ -233,7 +234,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
233
234
|
- - ">="
|
234
235
|
- !ruby/object:Gem::Version
|
235
236
|
version: '0'
|
236
|
-
requirements:
|
237
|
+
requirements:
|
238
|
+
- Capybara, Selenium-WebDriver
|
237
239
|
rubyforge_project:
|
238
240
|
rubygems_version: 2.6.5
|
239
241
|
signing_key:
|