testcentricity_web 4.5.7 → 4.5.9
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/CHANGELOG.md +18 -0
- data/README.md +20 -22
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_core/webdriver_helper.rb +14 -6
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a51581c1a0aa1b5c14e1f4ca5a99767f05c956d79e62fe3be21864a1b3e3b69
|
4
|
+
data.tar.gz: c859c5da5b37a6c1cfc75ea34d04d612d18e35f62bc1419e1fbe27ffe5d0ef79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8858b75a894d4512ef69f560727b8d9c8a0700e10c7865ffb5e0a5903a604a7a8998d759549b0761c9fbd8f836a1398f1097c1a04cea9f04e67b57d4aa5285c1
|
7
|
+
data.tar.gz: dc154b9acd9f376a88375fc2945913e2b99cf47c5589975110c3de85fbf844e10d94cc0d4eb10be81f27e50026bb67cf2297509a49ac7d2a4c5752aaf71f5d59
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,24 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
4
|
|
5
|
+
## [4.5.9] - 23-JUNE-2024
|
6
|
+
|
7
|
+
### Changed
|
8
|
+
|
9
|
+
* Updated `selenium-webdriver` gem to version 4.22.0.
|
10
|
+
|
11
|
+
|
12
|
+
## [4.5.8] - 21-MAY-2024
|
13
|
+
|
14
|
+
### Changed
|
15
|
+
|
16
|
+
* Setting `DOWNLOADS` Environment Variable to `true` will create a `/downloads` folder which will be used as the destination
|
17
|
+
for files that are downloaded by your automated tests. You know longer need to manually create the `/downloads` folder.
|
18
|
+
* Updated `appium_lib` gem to version 15.1.0.
|
19
|
+
* Updated `appium_lib_core` gem to version 9.1.1.
|
20
|
+
* Updated `selenium-webdriver` gem to version 4.21.1.
|
21
|
+
|
22
|
+
|
5
23
|
## [4.5.7] - 25-APR-2024
|
6
24
|
|
7
25
|
### Changed
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# TestCentricity™ Web
|
1
|
+
# TestCentricity™ For Web
|
2
2
|
|
3
3
|
[](https://badge.fury.io/rb/testcentricity_web)
|
4
4
|
[](http://opensource.org/licenses/BSD-3-Clause)
|
@@ -7,12 +7,12 @@
|
|
7
7
|
[](http://www.rubydoc.info/gems/testcentricity_web)
|
8
8
|
|
9
9
|
|
10
|
-
The TestCentricity™ Web core framework for desktop and mobile web browser-based app testing implements a Page Object Model
|
10
|
+
The TestCentricity™ For Web core framework for desktop and mobile web browser-based app testing implements a Page Object Model
|
11
11
|
DSL for use with Cucumber (version 7.x or greater) or RSpec, and Selenium-Webdriver. It also facilitates the configuration
|
12
12
|
of the appropriate Selenium-Webdriver capabilities required to establish connections with one or more local or cloud hosted
|
13
13
|
desktop or mobile web browsers.
|
14
14
|
|
15
|
-
The TestCentricity™ Web gem supports connecting to, and running automated tests against the following target web browsers:
|
15
|
+
The TestCentricity™ For Web gem supports connecting to, and running automated tests against the following target web browsers:
|
16
16
|
* locally hosted desktop browsers (Chrome, Edge, Firefox, or Safari)
|
17
17
|
* locally hosted "headless" Chrome, Firefox, or Edge browsers
|
18
18
|
* remote desktop and emulated mobile web browsers hosted on Selenium Grid 4 and Dockerized Selenium Grid 4 environments
|
@@ -34,8 +34,8 @@ A complete history of bug fixes and new features can be found in the {file:CHANG
|
|
34
34
|
|
35
35
|
The RubyDocs for this gem can be found [here](https://www.rubydoc.info/gems/testcentricity_web).
|
36
36
|
|
37
|
-
An example project that demonstrates the implementation of a page object model framework using
|
38
|
-
can be found [here](https://github.com/TestCentricity/tc_multi_webdriver_sample).
|
37
|
+
An example project that demonstrates the implementation of a page object model framework using TestCentricity™ For Web and
|
38
|
+
Cucumber can be found [here](https://github.com/TestCentricity/tc_multi_webdriver_sample).
|
39
39
|
|
40
40
|
|
41
41
|
### Which gem should I use?
|
@@ -44,23 +44,21 @@ can be found [here](https://github.com/TestCentricity/tc_multi_webdriver_sample)
|
|
44
44
|
|
45
45
|
### Which gem should I use?
|
46
46
|
|
47
|
-
* The [TestCentricity **Web** gem](https://rubygems.org/gems/testcentricity_web)
|
48
|
-
* The [TestCentricity **Mobile** gem](https://rubygems.org/gems/testcentricity_mobile)
|
49
|
-
* The [TestCentricity **Apps** gem](https://rubygems.org/gems/testcentricity_apps)
|
50
|
-
* The TestCentricity gem supports testing of native mobile apps and/or web interfaces via desktop and mobile web browsers.
|
47
|
+
* The [TestCentricity For **Web** gem](https://rubygems.org/gems/testcentricity_web) supports testing of web interfaces via desktop and mobile web browsers
|
48
|
+
* The [TestCentricity For **Mobile** gem](https://rubygems.org/gems/testcentricity_mobile) supports testing of native iOS and Android mobile apps
|
49
|
+
* The [TestCentricity For **Apps** gem](https://rubygems.org/gems/testcentricity_apps) supports testing of MacOS desktop apps and native iOS and Android mobile apps
|
51
50
|
|
52
|
-
| Tested platforms
|
53
|
-
|
54
|
-
| Desktop/mobile web browsers only
|
55
|
-
| Native mobile iOS and/or Android apps only
|
56
|
-
| MacOS desktop apps
|
57
|
-
| Native mobile apps and desktop/mobile web browsers | No | No | No | Yes |
|
51
|
+
| Tested platforms | TestCentricity For Web | TestCentricity For Mobile | TestCentricity For Apps |
|
52
|
+
|---------------------------------------------|:-:|:-:|:-:|
|
53
|
+
| Desktop/mobile web browsers only | Yes | No | No |
|
54
|
+
| Native mobile iOS and/or Android apps only | No | Yes | Yes |
|
55
|
+
| MacOS desktop apps | No | No | Yes |
|
58
56
|
|
59
57
|
|
60
58
|
## Installation
|
61
59
|
|
62
|
-
TestCentricity Web version 4.4 and above requires Ruby version 3.0.0 or later. To install the TestCentricity Web gem,
|
63
|
-
this line to your automation project's `Gemfile`:
|
60
|
+
TestCentricity For Web version 4.4 and above requires Ruby version 3.0.0 or later. To install the TestCentricity For Web gem,
|
61
|
+
add this line to your automation project's `Gemfile`:
|
64
62
|
|
65
63
|
gem 'testcentricity_web'
|
66
64
|
|
@@ -466,7 +464,7 @@ Once your `PageObject` has been instantiated, you can call its `PageSection` met
|
|
466
464
|
`PageObjects` and `PageSections` are typically made up of UI elements like text fields, check boxes, select lists (combo
|
467
465
|
boxes), radio buttons, tables, ordered and unordered lists, buttons, images, HTML5 video or audio player objects, etc.
|
468
466
|
UI elements are declared and instantiated within the class definition of the `PageObject` or `PageSection` in which they
|
469
|
-
are contained. With TestCentricity Web, all UI elements are based on the `UIElement` class.
|
467
|
+
are contained. With TestCentricity For Web, all UI elements are based on the `UIElement` class.
|
470
468
|
|
471
469
|
|
472
470
|
### Declaring and Instantiating UIElements
|
@@ -1625,9 +1623,9 @@ Below is an example of an `options` hash for specifying a connection to a locall
|
|
1625
1623
|
#### Testing File Downloads With Desktop Browsers
|
1626
1624
|
|
1627
1625
|
File download functionality can be tested with locally hosted instances of Chrome, Edge, or Firefox desktop browsers. Your
|
1628
|
-
automation project must
|
1629
|
-
|
1630
|
-
below:
|
1626
|
+
automation project must set the `DOWNLOADS` Environment Variable to `true`, which will result in a `/downloads` folder being
|
1627
|
+
created, which will be used as the destination for files that are downloaded by your automated tests. The `/downloads` folder
|
1628
|
+
will be at the same level as the `/config` and `/features` folders, as depicted below:
|
1631
1629
|
|
1632
1630
|
📁 my_automation_project/
|
1633
1631
|
├── 📁 config/
|
@@ -3161,7 +3159,7 @@ area sub-folders as needed. Likewise, `PageSection` class definitions should be
|
|
3161
3159
|
---
|
3162
3160
|
## Web Test Automation Framework Implementation
|
3163
3161
|
|
3164
|
-

|
3162
|
+

|
3165
3163
|
|
3166
3164
|
|
3167
3165
|
---
|
@@ -157,6 +157,10 @@ module TestCentricity
|
|
157
157
|
@initialized = false
|
158
158
|
end
|
159
159
|
|
160
|
+
def self.downloads_path
|
161
|
+
@downloads_path
|
162
|
+
end
|
163
|
+
|
160
164
|
def self.initialize_browser_size
|
161
165
|
# tile browser windows if BROWSER_TILE environment variable is true and running in multiple parallel threads
|
162
166
|
if ENV['BROWSER_TILE'] && (Environ.parallel || @drivers.length > 1)
|
@@ -216,8 +220,12 @@ module TestCentricity
|
|
216
220
|
|
217
221
|
def self.initialize_downloads
|
218
222
|
@drivers = {}
|
219
|
-
# set downloads folder path
|
220
223
|
@downloads_path = "#{Dir.pwd}/downloads"
|
224
|
+
# create downloads folder if it doesn't already exist
|
225
|
+
if ENV['DOWNLOADS'] && ENV['DOWNLOADS'].to_bool
|
226
|
+
Dir.mkdir(@downloads_path) unless Dir.exist?(@downloads_path)
|
227
|
+
end
|
228
|
+
|
221
229
|
if ENV['PARALLEL']
|
222
230
|
Environ.parallel = true
|
223
231
|
Environ.process_num = ENV['TEST_ENV_NUMBER']
|
@@ -486,7 +494,7 @@ module TestCentricity
|
|
486
494
|
else
|
487
495
|
# define desktop browser options
|
488
496
|
bs_options[:resolution] = ENV['RESOLUTION'] if ENV['RESOLUTION']
|
489
|
-
bs_options[:seleniumVersion] = '4.
|
497
|
+
bs_options[:seleniumVersion] = '4.21.0'
|
490
498
|
{
|
491
499
|
browserName: browser,
|
492
500
|
browserVersion: ENV['BS_VERSION'],
|
@@ -556,7 +564,7 @@ module TestCentricity
|
|
556
564
|
else
|
557
565
|
# define desktop browser options
|
558
566
|
tb_options['screen-resolution'] = ENV['RESOLUTION'] if ENV['RESOLUTION']
|
559
|
-
tb_options['selenium-version'] = '4.
|
567
|
+
tb_options['selenium-version'] = '4.20.0'
|
560
568
|
end
|
561
569
|
{
|
562
570
|
browserName: browser,
|
@@ -619,7 +627,7 @@ module TestCentricity
|
|
619
627
|
# define mobile device options
|
620
628
|
if ENV['SL_PLATFORM']
|
621
629
|
sl_options[:deviceOrientation] = ENV['ORIENTATION'].upcase if ENV['ORIENTATION']
|
622
|
-
sl_options[:appium_version] = '1.
|
630
|
+
sl_options[:appium_version] = '2.1.3'
|
623
631
|
{
|
624
632
|
browserName: browser,
|
625
633
|
platform_name: ENV['SL_PLATFORM'],
|
@@ -678,7 +686,7 @@ module TestCentricity
|
|
678
686
|
platformName: ENV['LT_OS'],
|
679
687
|
resolution: ENV['RESOLUTION'],
|
680
688
|
name: test_context_message,
|
681
|
-
selenium_version: '4.
|
689
|
+
selenium_version: '4.21.0',
|
682
690
|
}
|
683
691
|
# define the optional LambdaTest options
|
684
692
|
lt_options[:project] = ENV['AUTOMATE_PROJECT'] if ENV['AUTOMATE_PROJECT']
|
@@ -746,7 +754,7 @@ module TestCentricity
|
|
746
754
|
options.add_argument("--lang=#{ENV['LOCALE']}") if ENV['LOCALE']
|
747
755
|
if browser == :chrome_headless || browser == :edge_headless
|
748
756
|
Environ.headless = true
|
749
|
-
options.add_argument('--headless')
|
757
|
+
options.add_argument('--headless=new')
|
750
758
|
options.add_argument('--disable-gpu')
|
751
759
|
end
|
752
760
|
options
|
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: 4.5.
|
4
|
+
version: 4.5.9
|
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: 2024-
|
11
|
+
date: 2024-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -156,14 +156,14 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 15.
|
159
|
+
version: 15.1.0
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 15.
|
166
|
+
version: 15.1.0
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: browserstack-local
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -268,14 +268,14 @@ dependencies:
|
|
268
268
|
requirements:
|
269
269
|
- - '='
|
270
270
|
- !ruby/object:Gem::Version
|
271
|
-
version: 4.
|
271
|
+
version: 4.22.0
|
272
272
|
type: :runtime
|
273
273
|
prerelease: false
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
276
|
- - '='
|
277
277
|
- !ruby/object:Gem::Version
|
278
|
-
version: 4.
|
278
|
+
version: 4.22.0
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: test-unit
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -306,13 +306,13 @@ dependencies:
|
|
306
306
|
version: '0'
|
307
307
|
description: |2-
|
308
308
|
|
309
|
-
The TestCentricity™ Web core framework for desktop and mobile web browser-based app testing implements a Page Object
|
309
|
+
The TestCentricity™ For Web core framework for desktop and mobile web browser-based app testing implements a Page Object
|
310
310
|
Model DSL for use with Cucumber or RSpec, and Selenium-Webdriver. The gem also facilitates the configuration of the
|
311
311
|
appropriate Selenium-Webdriver capabilities required to establish connections to locally hosted desktop browsers,
|
312
312
|
locally hosted emulated mobile browsers (iOS, Android, etc.) running within a local instance of Chrome, mobile Safari
|
313
313
|
browsers on iOS device simulators or physical iOS devices, mobile Chrome browsers on Android Studio virtual device
|
314
|
-
emulators, or cloud hosted desktop or mobile web browsers (using BrowserStack, Sauce Labs, TestingBot, or
|
315
|
-
|
314
|
+
emulators, or cloud hosted desktop or mobile web browsers (using BrowserStack, Sauce Labs, TestingBot, or LambdaTest
|
315
|
+
services).
|
316
316
|
email:
|
317
317
|
- testcentricity@gmail.com
|
318
318
|
executables: []
|