testcentricity_web 4.1.1 → 4.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b12fc25c9cf0781a7c8d1e3da7db99f2887eb9648f5de7957e1cd10698f6fed9
4
- data.tar.gz: c9fd999bbb151a5626f3f934bdd27b2c522e9b53729d3d221d596d5d4855ab37
3
+ metadata.gz: 022d693b793b248b2aac148c4a0865b39dbaf2f05c58a45f00cbd10339335e82
4
+ data.tar.gz: 4c319c310595c0c5069fc81a635ad906087376fd08a40877c81dcea205fd4a09
5
5
  SHA512:
6
- metadata.gz: bcfe319938cbc21134b18259af144e73bf25ba8a14b1f35a718efe34c029dc46216e06d8f70a8786a7cd1cbd97f4cc9201e7884051ea66baed703eec1df89383
7
- data.tar.gz: 37118e8d45ea994e7ebfba7a348319cba6c2c4dc4b6ccffcd0e8f61480730e0d2903302496a7cfc177989be49f3ea55a098ac295bb38c0d42d52b8e051686e5a
6
+ metadata.gz: 05ba745d0ab5f5abdf107a401c901a01536605ef6e39c4d81e17f0b1a6795466b16fef76d0a06011659e66aba6faae2491c9cf6a96f201801d6cbbfc91c51f09
7
+ data.tar.gz: ccae42725bdbad5680aa898d9f5f7e77c52cb2783922bbef88ba28f96907499fa9dec0d1d097e5a9d7fbe6b6394602cdd6d29903c54b135a60af5f2486b0ef8a
data/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # CHANGELOG
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+
5
+ ## [4.1.2] - 07-MAR-2022
6
+
7
+ ### Changed
8
+ * Updated HTML documentation
9
+
10
+
4
11
  ## [4.1.1] - 03-MAR-2022
5
12
 
6
13
  ### Changed
@@ -12,6 +19,9 @@ Grid 4 environments.
12
19
 
13
20
  ## [4.1.0] - 28-FEB-2022
14
21
 
22
+ ### Removed
23
+ * Support for CrossBrowserTesting and Gridlastic cloud hosted Selenium grids have been removed.
24
+
15
25
  ### Added
16
26
  * TestCentricity now supports and integrates with Selenium-Webdriver version 4.1.
17
27
  * Added support for locally hosted Microsoft Edge desktop web browsers, including in `headless` mode.
@@ -28,9 +38,6 @@ Grid 4 environments.
28
38
  * Ruby version 2.7 or greater required.
29
39
  * Selenium-Webdriver version 4 or greater required.
30
40
 
31
- ### Removed
32
- * Support for CrossBrowserTesting and Gridlastic cloud hosted Selenium grids have been removed.
33
-
34
41
 
35
42
  ## [4.0.3] - 30-DEC-2021
36
43
 
data/Gemfile.lock ADDED
@@ -0,0 +1,112 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ testcentricity_web (4.1.1)
5
+ appium_lib
6
+ browserstack-local
7
+ capybara (>= 3.1, < 4)
8
+ childprocess
9
+ chronic (= 0.10.2)
10
+ faker
11
+ i18n
12
+ os (~> 1.0)
13
+ selenium-webdriver (>= 4.0, < 5)
14
+ spreadsheet (= 1.1.7)
15
+ test-unit
16
+ virtus
17
+ webdrivers (~> 5.0)
18
+
19
+ GEM
20
+ remote: https://rubygems.org/
21
+ specs:
22
+ addressable (2.8.0)
23
+ public_suffix (>= 2.0.2, < 5.0)
24
+ appium_lib (12.0.0)
25
+ appium_lib_core (~> 5.0.0)
26
+ nokogiri (~> 1.8, >= 1.8.1)
27
+ tomlrb (>= 1.1, < 3.0)
28
+ appium_lib_core (5.0.3)
29
+ faye-websocket (~> 0.11.0)
30
+ selenium-webdriver (~> 4.0)
31
+ axiom-types (0.1.1)
32
+ descendants_tracker (~> 0.0.4)
33
+ ice_nine (~> 0.11.0)
34
+ thread_safe (~> 0.3, >= 0.3.1)
35
+ browserstack-local (1.3.0)
36
+ capybara (3.36.0)
37
+ addressable
38
+ matrix
39
+ mini_mime (>= 0.1.3)
40
+ nokogiri (~> 1.8)
41
+ rack (>= 1.6.0)
42
+ rack-test (>= 0.6.3)
43
+ regexp_parser (>= 1.5, < 3.0)
44
+ xpath (~> 3.2)
45
+ childprocess (4.1.0)
46
+ chronic (0.10.2)
47
+ coercible (1.0.0)
48
+ descendants_tracker (~> 0.0.1)
49
+ concurrent-ruby (1.1.9)
50
+ descendants_tracker (0.0.4)
51
+ thread_safe (~> 0.3, >= 0.3.1)
52
+ eventmachine (1.2.7)
53
+ faker (2.19.0)
54
+ i18n (>= 1.6, < 2)
55
+ faye-websocket (0.11.1)
56
+ eventmachine (>= 0.12.0)
57
+ websocket-driver (>= 0.5.1)
58
+ i18n (1.10.0)
59
+ concurrent-ruby (~> 1.0)
60
+ ice_nine (0.11.2)
61
+ matrix (0.4.2)
62
+ mini_mime (1.1.2)
63
+ nokogiri (1.13.3-x86_64-darwin)
64
+ racc (~> 1.4)
65
+ os (1.1.4)
66
+ power_assert (2.0.1)
67
+ public_suffix (4.0.6)
68
+ racc (1.6.0)
69
+ rack (2.2.3)
70
+ rack-test (1.1.0)
71
+ rack (>= 1.0, < 3)
72
+ rake (13.0.6)
73
+ redcarpet (3.5.1)
74
+ regexp_parser (2.2.1)
75
+ rexml (3.2.5)
76
+ ruby-ole (1.2.12.2)
77
+ rubyzip (2.3.2)
78
+ selenium-webdriver (4.1.0)
79
+ childprocess (>= 0.5, < 5.0)
80
+ rexml (~> 3.2, >= 3.2.5)
81
+ rubyzip (>= 1.2.2)
82
+ spreadsheet (1.1.7)
83
+ ruby-ole (>= 1.0)
84
+ test-unit (3.5.3)
85
+ power_assert
86
+ thread_safe (0.3.6)
87
+ tomlrb (2.0.1)
88
+ virtus (2.0.0)
89
+ axiom-types (~> 0.1)
90
+ coercible (~> 1.0)
91
+ descendants_tracker (~> 0.0, >= 0.0.3)
92
+ webdrivers (5.0.0)
93
+ nokogiri (~> 1.6)
94
+ rubyzip (>= 1.3.0)
95
+ selenium-webdriver (~> 4.0)
96
+ websocket-driver (0.7.5)
97
+ websocket-extensions (>= 0.1.0)
98
+ websocket-extensions (0.1.5)
99
+ xpath (3.2.0)
100
+ nokogiri (~> 1.8)
101
+
102
+ PLATFORMS
103
+ x86_64-darwin-21
104
+
105
+ DEPENDENCIES
106
+ bundler
107
+ rake
108
+ redcarpet
109
+ testcentricity_web!
110
+
111
+ BUNDLED WITH
112
+ 2.2.1
data/README.md CHANGED
@@ -300,6 +300,13 @@ A **PageSection Object** is a collection of **UI Elements** that may appear in m
300
300
  app. It is a collection of **UI Elements** that represent a conceptual area of functionality, like a navigation bar, a search capability,
301
301
  or a menu. **UI Elements** and functional behavior are confined to the scope of a **PageSection Object**.
302
302
 
303
+ ![Navigation Header](/doc/images/LI_NavHeader.jpg)
304
+
305
+ ![Navigation Header](/doc/images/LI_NavHeader2.jpg)
306
+
307
+ ![User Profile Popup](/doc/images/LI_Me.jpg)
308
+
309
+
303
310
  A **PageSection Object** may contain other **PageSection Objects**.
304
311
 
305
312
 
@@ -551,6 +558,268 @@ With TestCentricity, all UI elements are based on the **UIElement** class, and i
551
558
  element.aria_busy?
552
559
 
553
560
 
561
+ ### Populating your PageObject or PageSection with data
562
+
563
+ A typical automated test may be required to perform the entry of test data by interacting with various `UIElements` on your `PageObject` or
564
+ `PageSection`. This data entry can be performed using the various object action methods (listed above) for each `UIElement` that needs to be
565
+ interacted with.
566
+
567
+ The `PageObject.populate_data_fields` and `PageSection.populate_data_fields` methods support the entry of test data into a collection of
568
+ `UIElements`. The `populate_data_fields` method accepts a hash containing key/hash pairs of `UIElements` and their associated data to be
569
+ entered. Data values must be in the form of a `String` for `textfield` and `selectlist` controls. For `checkbox` and `radio` controls, data
570
+ must either be a `Boolean` or a `String` that evaluates to a `Boolean` value (Yes, No, 1, 0, true, false). For `section` objects, data values
571
+ must be a `String`, and the `section` object must have a `set` method defined.
572
+
573
+ The `populate_data_fields` method verifies that data attributes associated with each `UIElement` is not `nil` or `empty` before attempting to
574
+ enter data into the `UIElement`.
575
+
576
+ The optional `wait_time` parameter is used to specify the time (in seconds) to wait for each `UIElement` to become become viable for data entry
577
+ (the `UIElement` must be visible and enabled) before entering the associated data value. This option is useful in situations where entering data,
578
+ or setting the state of a `UIElement` might cause other `UIElements` to become visible or active. Specifying a wait_time value ensures that the
579
+ subsequent `UIElements` will be ready to be interacted with as states are changed. If the wait time is `nil`, then the wait time will be 5 seconds.
580
+
581
+ def enter_data(user_data)
582
+ fields = {
583
+ first_name_field => user_data.first_name,
584
+ last_name_field => user_data.last_name,
585
+ email_field => user_data.email,
586
+ country_code_select => user_data.country_code,
587
+ phone_number_field => user_data.phone_number,
588
+ time_zone_select => user_data.time_zone,
589
+ language_select => user_data.language
590
+ }
591
+ populate_data_fields(fields, wait_time = 2)
592
+ end
593
+
594
+
595
+ ### Verifying UIElements on your PageObject or PageSection
596
+
597
+ A typical automated test executes one or more interactions with the user interface, and then performs a validation to verify whether
598
+ the expected state of the UI has been achieved. This verification can be performed using the various object state methods (listed above)
599
+ for each `UIElement` that requires verification. Depending on the complexity and number of `UIElements` to be verified, the code required to
600
+ verify the presence of `UIElements` and their correct states can become cumbersome.
601
+
602
+ The `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods support the verification of multiple properties of multiple
603
+ UI elements on a **Page Object** or **PageSection Object**. The `verify_ui_states` method accepts a hash containing key/hash pairs of UI
604
+ elements and their properties or attributes to be verified.
605
+
606
+ ui = {
607
+ object1 => { property: state },
608
+ object2 => { property: state, property: state },
609
+ object3 => { property: state }
610
+ }
611
+ verify_ui_states(ui)
612
+
613
+ The `verify_ui_states` method queues up any exceptions that occur while verifying each object's properties until all `UIElements` and their
614
+ properties have been checked, and then posts any exceptions encountered upon completion. Posted exceptions include a screenshot with a red
615
+ dashed highlight around the UI element that did not match the expected results.
616
+
617
+ The `verify_ui_states` method supports the following property/state pairs:
618
+
619
+ **All Objects:**
620
+
621
+ :exists Boolean
622
+ :enabled Boolean
623
+ :disabled Boolean
624
+ :visible Boolean
625
+ :hidden Boolean
626
+ :displayed Boolean
627
+ :width Integer
628
+ :height Integer
629
+ :x Integer
630
+ :y Integer
631
+ :class String
632
+ :value or :caption String
633
+ :attribute Hash
634
+
635
+ **Text Fields:**
636
+
637
+ :readonly Boolean
638
+ :placeholder String
639
+ :maxlength Integer
640
+ :min Integer
641
+ :max Integer
642
+ :step Integer
643
+
644
+ **Checkboxes:**
645
+
646
+ :checked Boolean
647
+
648
+ **Radio Buttons:**
649
+
650
+ :selected Boolean
651
+
652
+ **Images**
653
+
654
+ :loaded Boolean
655
+ :broken Boolean
656
+ :src String
657
+ :alt String
658
+
659
+ **Lists**
660
+
661
+ :items Array of Strings
662
+ :itemcount Integer
663
+ :item Hash
664
+ :selected String
665
+
666
+ **Select Lists** (ComboBoxes):
667
+
668
+ :items or :options Array of Strings
669
+ :itemcount or :optioncount Integer
670
+ :selected String
671
+
672
+ **Tables**
673
+
674
+ :rowcount Integer
675
+ :columncount Integer
676
+ :columnheaders Array of String
677
+ :cell Hash
678
+ :row Hash
679
+ :column Hash
680
+
681
+ **Audio/Video Media Objects**
682
+
683
+ :autoplay Boolean
684
+ :ended Boolean
685
+ :controls Boolean
686
+ :loop Boolean
687
+ :muted Boolean
688
+ :default_muted Boolean
689
+ :paused Boolean
690
+ :seeking Boolean
691
+ :src String
692
+ :current_time Float
693
+ :default_playback_rate Float
694
+ :duration Float
695
+ :playback_rate Float
696
+ :ready_state Integer
697
+ :volume Float
698
+ :crossorigin String
699
+ :preload String
700
+ :poster String
701
+
702
+ The `verify_ui_states` method supports the following ARIA accessibility property/state pairs:
703
+
704
+ **All Objects:**
705
+
706
+ :aria_label String
707
+ :aria_disabled Boolean
708
+ :aria_labelledby String
709
+ :aria_describedby String
710
+ :aria_live Boolean
711
+ :aria_selected Boolean
712
+ :aria_hidden Boolean
713
+ :aria_expanded Boolean
714
+ :aria_required Boolean
715
+ :aria_invalid Boolean
716
+ :aria_checked Boolean
717
+ :aria_readonly Boolean
718
+ :aria_pressed Boolean
719
+ :aria_haspopup Boolean
720
+ :aria_sort String
721
+ :aria_rowcount String
722
+ :aria_colcount String
723
+ :aria_valuemax String
724
+ :aria_valuemin String
725
+ :aria_valuenow String
726
+ :aria_valuetext String
727
+ :aria_orientation String
728
+ :aria_keyshortcuts String
729
+ :aria_roledescription String
730
+ :aria_autocomplete String
731
+ :aria_controls String
732
+ :aria_modal String
733
+ :aria_multiline Boolean
734
+ :aria_multiselectable Boolean
735
+ :content_editable Boolean
736
+
737
+ The `verify_ui_states` method supports comparison states using property/comparison state pairs:
738
+
739
+ object => { property: { comparison_state: value } }
740
+
741
+ **Comparison States:**
742
+
743
+ :lt or :less_than Integer or String
744
+ :lt_eq or :less_than_or_equal Integer or String
745
+ :gt or :greater_than Integer or String
746
+ :gt_eq or :greater_than_or_equal Integer or String
747
+ :starts_with String
748
+ :ends_with String
749
+ :contains String
750
+ :not_contains or :does_not_contain Integer or String
751
+ :not_equal Integer, String, or Boolean
752
+
753
+ The example below depicts a `verify_changes_saved` method that uses the `verify_ui_states` method to verify that all expected
754
+ values appear in the associated text fields after entering data and performing a save operation.
755
+
756
+ def verify_changes_saved
757
+ # verify saved user data is correctly displayed
758
+ ui = {
759
+ first_name_field => { visible: true, aria_invalid: false, value: User.current.first_name },
760
+ last_name_field => { visible: true, aria_invalid: false, value: User.current.last_name },
761
+ email_field => { visible: true, aria_invalid: false, value: User.current.email },
762
+ phone_number_field => { visible: true, aria_invalid: false, value: User.current.phone_number },
763
+ time_zone_select => { visible: true, aria_invalid: false, value: User.current.time_zone },
764
+ language_select => { visible: true, aria_invalid: false, value: User.current.language },
765
+ avatar_container => { visible: true },
766
+ avatar_image => { visible: true, broken: false, src: { contains: User.current.avatar_file_name } },
767
+ error_message_label => { visible: false }
768
+ }
769
+ verify_ui_states(ui)
770
+
771
+ # verify avatar src url does not contain /null/ institution id
772
+ verify_ui_states(avatar_image => { src: { does_not_contain: "/null/" } })
773
+ end
774
+
775
+
776
+ **I18n Translation Validation**
777
+
778
+ The `verify_ui_states` method also supports I18n string translations using property/I18n key name pairs:
779
+
780
+ object => { property: { translate_key: I18n key name } }
781
+
782
+ **I18n Translation Keys:**
783
+
784
+ :translate String (name of key in I18n compatible .yml file)
785
+ :translate_upcase String (name of key in I18n compatible .yml file)
786
+ :translate_downcase String (name of key in I18n compatible .yml file)
787
+ :translate_capitalize String (name of key in I18n compatible .yml file)
788
+ translate_titlecase: String (name of key in I18n compatible .yml file)
789
+
790
+ The example below depicts the usage of the `verify_ui_states` method to verify that the captions for menu items are correctly
791
+ translated.
792
+
793
+ def verify_menu
794
+ ui = {
795
+ account_settings_item => { visible: true, caption: { translate: 'Header.settings.account' } },
796
+ help_item => { visible: true, caption: { translate: 'Header.settings.help' } },
797
+ feedback_item => { visible: true, caption: { translate: 'Header.settings.feedback' } },
798
+ legal_item => { visible: true, caption: { translate: 'Header.settings.legal' } },
799
+ institution_item => { visible: true, caption: { translate: 'Header.settings.institution' } },
800
+ configurations_item => { visible: true, caption: { translate: 'Header.settings.configurations' } },
801
+ contact_us_item => { visible: true, caption: { translate: 'Header.settings.contact' } },
802
+ downloads_item => { visible: true, caption: { translate: 'Header.settings.downloads' } }
803
+ }
804
+ verify_ui_states(ui)
805
+ end
806
+
807
+ Baseline translation strings are stored in `.yml` files in the `config/locales/` folder. Each supported language/locale combination
808
+ has a corresponding `.yml` file. I18n `.yml` file naming convention uses [ISO-639 language codes and ISO-3166 country codes](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html). For example:
809
+
810
+ English en.yml
811
+ English (Canada) en-CA.yml
812
+ French (Canada) fr-CA.yml
813
+ French fr.yml
814
+ Spanish es.yml
815
+ German de.yml
816
+ Portuguese (Brazil) pt-BR.yml
817
+ Portuguese (Portugal) pt-PT.yml
818
+
819
+ I18n `.yml` files contain key/value pairs representing the name of a translated string (key) and the string value.
820
+
821
+
822
+
554
823
  ## Instantiating your Page Objects
555
824
 
556
825
  Before you can call the methods in your **Page Objects** and **PageSection Objects**, you must instantiate the **Page Objects** of your
@@ -824,7 +1093,6 @@ the `WEB_BROWSER` Environment Variable must be set to one of the values from the
824
1093
  | `ipad_chrome` | `chrome` | 1024 x 768 | landscape | iOS 12.2 - Mobile Chrome browser for iOS |
825
1094
  | `ipad_firefox` | `chrome` | 1024 x 768 | landscape | iOS 12.2 - Mobile Firefox browser for iOS |
826
1095
  | `ipad_edge` | `chrome` | 1024 x 768 | landscape | iOS 12.2 - Mobile Edge browser for iOS |
827
- | `android_tablet` | `chrome` | 1024 x 768 | landscape | Android 3.0 |
828
1096
  | `kindle_fire` | `chrome` | 1024 x 600 | landscape | |
829
1097
  | `kindle_firehd7` | `chrome` | 800 x 480 | landscape | Fire OS 3 |
830
1098
  | `kindle_firehd8` | `chrome` | 1280 x 800 | landscape | Fire OS 5 |
@@ -851,7 +1119,6 @@ the `WEB_BROWSER` Environment Variable must be set to one of the values from the
851
1119
  | `iphone_11` | `chrome` | 414 x 896 | portrait | iOS 13.1 |
852
1120
  | `iphone_11_pro` | `chrome` | 375 x 812 | portrait | iOS 13.1 |
853
1121
  | `iphone_11_pro_max` | `chrome` | 414 x 896 | portrait | iOS 13.1 |
854
- | `android_phone` | `chrome` | 360 x 640 | portrait | Android 4.2.1 |
855
1122
  | `nexus6` | `chrome` | 411 x 731 | portrait | Android 6 |
856
1123
  | `pixel` | `chrome` | 411 x 731 | portrait | Android 8 |
857
1124
  | `pixel_xl` | `chrome` | 411 x 731 | portrait | Android 8 |
@@ -1127,26 +1394,28 @@ Below is a list of Cucumber **Profiles** for supported locally and remotely host
1127
1394
  that you intend to connect with.
1128
1395
 
1129
1396
 
1130
- <% desktop = "--tags @desktop --require features BROWSER_TILE=true BROWSER_SIZE=1500,1000" %>
1131
- <% tablet = "--tags @desktop --require features BROWSER_TILE=true" %>
1132
- <% mobile = "--tags @mobile --require features BROWSER_TILE=true" %>
1397
+ <% desktop = "--tags @desktop --require features BROWSER_TILE=true BROWSER_SIZE=1500,1000" %>
1398
+ <% tablet = "--tags @desktop --require features BROWSER_TILE=true" %>
1399
+ <% mobile = "--tags @mobile --require features BROWSER_TILE=true" %>
1133
1400
 
1134
1401
  #==============
1135
1402
  # profiles for locally hosted desktop web browsers
1136
1403
  #==============
1137
1404
 
1138
- firefox: WEB_BROWSER=firefox <%= desktop %>
1139
- chrome: WEB_BROWSER=chrome <%= desktop %>
1140
- safari: WEB_BROWSER=safari <%= desktop %>
1141
- ie: WEB_BROWSER=ie <%= desktop %>
1405
+ firefox: WEB_BROWSER=firefox <%= desktop %>
1406
+ chrome: WEB_BROWSER=chrome <%= desktop %>
1407
+ edge: WEB_BROWSER=edge <%= desktop %>
1408
+ safari: WEB_BROWSER=safari <%= desktop %>
1409
+ ie: WEB_BROWSER=ie <%= desktop %>
1142
1410
 
1143
- chrome_headless: WEB_BROWSER=chrome_headless <%= desktop %>
1144
- firefox_headless: WEB_BROWSER=firefox_headless <%= desktop %>
1411
+ firefox_headless: WEB_BROWSER=firefox_headless <%= desktop %>
1412
+ chrome_headless: WEB_BROWSER=chrome_headless <%= desktop %>
1413
+ edge_headless: WEB_BROWSER=edge_headless <%= desktop %>
1145
1414
 
1146
1415
  #==============
1147
1416
  # profile for Selenium Grid and Dockerized Selenium Grid hosted desktop web browsers
1148
1417
  #==============
1149
- grid: SELENIUM=remote REMOTE_ENDPOINT="http://localhost:4444/wd/hub"
1418
+ grid: SELENIUM=remote REMOTE_ENDPOINT="http://localhost:4444/wd/hub"
1150
1419
 
1151
1420
 
1152
1421
  #==============
@@ -1180,9 +1449,7 @@ that you intend to connect with.
1180
1449
  iphone_11: WEB_BROWSER=iphone_11 HOST_BROWSER=chrome <%= mobile %>
1181
1450
  iphone_11_pro: WEB_BROWSER=iphone_11_pro HOST_BROWSER=chrome <%= mobile %>
1182
1451
  iphone_11_pro_max: WEB_BROWSER=iphone_11_pro_max HOST_BROWSER=chrome <%= mobile %>
1183
- android_phone: WEB_BROWSER=android_phone HOST_BROWSER=chrome <%= mobile %>
1184
1452
  nexus6: WEB_BROWSER=nexus6 HOST_BROWSER=chrome <%= mobile %>
1185
- android_tablet: WEB_BROWSER=android_tablet HOST_BROWSER=chrome <%= tablet %>
1186
1453
  kindle_fire: WEB_BROWSER=kindle_fire HOST_BROWSER=chrome <%= tablet %>
1187
1454
  kindle_firehd7: WEB_BROWSER=kindle_firehd7 HOST_BROWSER=chrome <%= tablet %>
1188
1455
  kindle_firehd8: WEB_BROWSER=kindle_firehd8 HOST_BROWSER=chrome <%= tablet %>
@@ -1211,43 +1478,19 @@ that you intend to connect with.
1211
1478
  # profiles for mobile device screen orientation
1212
1479
  #==============
1213
1480
 
1214
- portrait: ORIENTATION=portrait
1215
- landscape: ORIENTATION=landscape
1481
+ portrait: ORIENTATION=portrait
1482
+ landscape: ORIENTATION=landscape
1216
1483
 
1217
1484
 
1218
1485
  #==============
1219
1486
  # profiles for mobile Safari web browsers hosted within XCode iOS simulator
1220
1487
  # NOTE: Requires installation of XCode, iOS version specific target simulators, Appium, and the appium_capybara gem
1221
1488
  #==============
1222
-
1223
- appium_ios: WEB_BROWSER=appium APP_PLATFORM_NAME="iOS" APP_BROWSER="Safari" <%= mobile %>
1224
- app_ios_10: --profile appium_ios APP_VERSION="10.3"
1225
- app_ios_11: --profile appium_ios APP_VERSION="11.2"
1226
-
1227
- iphone_7_plus_10_sim: --profile app_ios_10 DEVICE_TYPE=phone APP_DEVICE="iPhone 7 Plus"
1228
- iphone_7_10_sim: --profile app_ios_10 DEVICE_TYPE=phone APP_DEVICE="iPhone 7"
1229
- iphone_7se_10_sim: --profile app_ios_10 DEVICE_TYPE=phone APP_DEVICE="iPhone SE"
1230
- iphone_6s_plus_10_sim: --profile app_ios_10 DEVICE_TYPE=phone APP_DEVICE="iPhone 6s Plus"
1231
- iphone_6s_10_sim: --profile app_ios_10 DEVICE_TYPE=phone APP_DEVICE="iPhone 6s"
1232
- iphone_SE_10_sim: --profile app_ios_10 DEVICE_TYPE=phone APP_DEVICE="iPhone SE"
1233
- iphone_X_11_sim: --profile app_ios_11 DEVICE_TYPE=phone APP_DEVICE="iPhone X"
1234
- iphone_8_11_sim: --profile app_ios_11 DEVICE_TYPE=phone APP_DEVICE="iPhone 8"
1235
- iphone_8_plus_11_sim: --profile app_ios_11 DEVICE_TYPE=phone APP_DEVICE="iPhone 8 Plus"
1236
- iphone_7_plus_11_sim: --profile app_ios_11 DEVICE_TYPE=phone APP_DEVICE="iPhone 7 Plus"
1237
- iphone_7_11_sim: --profile app_ios_11 DEVICE_TYPE=phone APP_DEVICE="iPhone 7"
1238
- iphone_7se_11_sim: --profile app_ios_11 DEVICE_TYPE=phone APP_DEVICE="iPhone SE"
1239
- iphone_6s_plus_11_sim: --profile app_ios_11 DEVICE_TYPE=phone APP_DEVICE="iPhone 6s Plus"
1240
- iphone_6s_11_sim: --profile app_ios_11 DEVICE_TYPE=phone APP_DEVICE="iPhone 6s"
1241
- iphone_SE_11_sim: --profile app_ios_11 DEVICE_TYPE=phone APP_DEVICE="iPhone SE"
1242
-
1243
- ipad_pro_12_9_11_sim: --profile app_ios_11 DEVICE_TYPE=tablet APP_DEVICE="iPad Pro (12.9-inch)"
1244
- ipad_pro_12_9_10_sim: --profile app_ios_10 DEVICE_TYPE=tablet APP_DEVICE="iPad Pro (12.9-inch)"
1245
- ipad_pro_10_5_11_sim: --profile app_ios_11 DEVICE_TYPE=tablet APP_DEVICE="iPad Pro (10.5-inch)"
1246
- ipad_pro_10_5_10_sim: --profile app_ios_10 DEVICE_TYPE=tablet APP_DEVICE="iPad Pro (10.5-inch)"
1247
- ipad_pro_9_7_11_sim: --profile app_ios_11 DEVICE_TYPE=tablet APP_DEVICE="iPad Pro (9.7-inch)"
1248
- ipad_pro_9_7_10_sim: --profile app_ios_10 DEVICE_TYPE=tablet APP_DEVICE="iPad Pro (9.7-inch)"
1249
- ipad_air_2_11_sim: --profile app_ios_11 DEVICE_TYPE=tablet APP_DEVICE="iPad Air 2"
1250
- ipad_air_2_10_sim: --profile app_ios_10 DEVICE_TYPE=tablet APP_DEVICE="iPad Air 2"
1489
+
1490
+ appium_ios: WEB_BROWSER=appium AUTOMATION_ENGINE=XCUITest APP_PLATFORM_NAME="ios" APP_BROWSER="Safari" NEW_COMMAND_TIMEOUT=30 SHUTDOWN_OTHER_SIMS=true SHOW_SIM_KEYBOARD=false
1491
+ app_ios_15: --profile appium_ios APP_VERSION="15.2"
1492
+ ipad_pro_12_9_15_sim: --profile app_ios_15 DEVICE_TYPE=tablet APP_DEVICE="iPad Pro (12.9-inch) (5th generation)" <%= desktop %>
1493
+ ipad_air_15_sim: --profile app_ios_15 DEVICE_TYPE=tablet APP_DEVICE="iPad Air (4th generation)" <%= desktop %>
1251
1494
 
1252
1495
 
1253
1496
  #==============
@@ -1255,227 +1498,110 @@ that you intend to connect with.
1255
1498
  # NOTE: Requires installation of XCode, Appium, and the appium_capybara gem
1256
1499
  #==============
1257
1500
 
1258
- my_ios_11_3_iphone: --profile app_ios_11 DEVICE_TYPE=phone APP_DEVICE="My Test iPhoneX" APP_UDID="INSERT YOUR DEVICE UDID"
1259
- my_ios_10_3_ipad: --profile app_ios_10 DEVICE_TYPE=tablet APP_DEVICE="My Test iPad Pro" APP_UDID="INSERT YOUR DEVICE UDID"
1501
+ my_ios_15_iphone: --profile app_ios_15 DEVICE_TYPE=phone APP_DEVICE="My Test iPhoneX" APP_UDID="INSERT YOUR DEVICE UDID"
1502
+ my_ios_15_ipad: --profile app_ios_15 DEVICE_TYPE=tablet APP_DEVICE="My Test iPad Pro" APP_UDID="INSERT YOUR DEVICE UDID"
1260
1503
 
1261
1504
 
1262
1505
  #==============
1263
1506
  # profiles for Android mobile web browsers hosted within Android Studio Android Virtual Device emulators
1264
1507
  # NOTE: Requires installation of Android Studio, Android version specific virtual device simulators, Appium, and the appium_capybara gem
1265
1508
  #==============
1266
-
1267
- appium_android: WEB_BROWSER=appium APP_PLATFORM_NAME="Android" <%= mobile %>
1268
- android_api_26: --profile appium_android APP_BROWSER="Chrome" APP_VERSION="8.0"
1269
- android_api_23: --profile appium_android APP_BROWSER="Browser" APP_VERSION="6.0"
1270
- pixel_xl_api26_sim: --profile android_api_26 DEVICE_TYPE=phone APP_DEVICE="Pixel_XL_API_26"
1271
- pixel_2_xl_api26_sim: --profile android_api_26 DEVICE_TYPE=phone APP_DEVICE="Pixel_2_XL_API_26"
1272
- nexus_6_api23_sim: --profile android_api_23 DEVICE_TYPE=phone APP_DEVICE="Nexus_6_API_23"
1509
+
1510
+ appium_android: WEB_BROWSER=appium APP_PLATFORM_NAME="Android" <%= mobile %>
1511
+ app_android_12: --profile appium_android APP_BROWSER="Chrome" APP_VERSION="12.0"
1512
+ pixel_c_api31_sim: --profile app_android_12 DEVICE_TYPE=tablet APP_DEVICE="Pixel_C_API_31"
1513
+
1273
1514
 
1274
1515
  #==============
1275
1516
  # profiles for remotely hosted web browsers on the BrowserStack service
1276
1517
  #==============
1277
1518
 
1278
- browserstack: WEB_BROWSER=browserstack BS_USERNAME="<INSERT USER NAME HERE>" BS_AUTHKEY="<INSERT PASSWORD HERE>"
1279
- bs_desktop: --profile browserstack <%= desktop %> RESOLUTION="1920x1080"
1280
- bs_mobile: --profile browserstack <%= mobile %>
1281
-
1282
- # BrowserStack OS X desktop browser profiles
1283
- bs_macos_mojave: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="Mojave"
1284
- bs_ff_mojave: --profile bs_macos_mojave BS_BROWSER="Firefox"
1285
- bs_chrome_mojave: --profile bs_macos_mojave BS_BROWSER="Chrome"
1286
- bs_safari_mojave: --profile bs_macos_mojave BS_BROWSER="Safari"
1287
-
1288
- bs_macos_high_sierra: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="High Sierra"
1289
- bs_ff_high_sierra: --profile bs_macos_high_sierra BS_BROWSER="Firefox"
1290
- bs_chrome_high_sierra: --profile bs_macos_high_sierra BS_BROWSER="Chrome"
1291
- bs_safari_high_sierra: --profile bs_macos_high_sierra BS_BROWSER="Safari"
1292
-
1293
- bs_macos_sierra: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="Sierra"
1294
- bs_ff_sierra: --profile bs_macos_sierra BS_BROWSER="Firefox"
1295
- bs_chrome_sierra: --profile bs_macos_sierra BS_BROWSER="Chrome"
1296
- bs_safari_sierra: --profile bs_macos_sierra BS_BROWSER="Safari"
1297
-
1298
- bs_osx_el_capitan: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="El Capitan"
1299
- bs_ff_el_cap: --profile bs_osx_el_capitan BS_BROWSER="Firefox"
1300
- bs_chrome_el_cap: --profile bs_osx_el_capitan BS_BROWSER="Chrome"
1301
- bs_safari_el_cap: --profile bs_osx_el_capitan BS_BROWSER="Safari"
1302
-
1303
- bs_osx_yosemite: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="Yosemite"
1304
- bs_ff_yos: --profile bs_osx_yosemite BS_BROWSER="Firefox"
1305
- bs_chrome_yos: --profile bs_osx_yosemite BS_BROWSER="Chrome"
1306
- bs_safari_yos: --profile bs_osx_yosemite BS_BROWSER="Safari"
1519
+ browserstack: WEB_BROWSER=browserstack BS_USERNAME="<INSERT USER NAME HERE>" BS_AUTHKEY="<INSERT PASSWORD HERE>"
1520
+ bs_desktop: --profile browserstack <%= desktop %> RESOLUTION="1920x1080"
1521
+ bs_mobile: --profile browserstack <%= mobile %>
1307
1522
 
1523
+ # BrowserStack macOS desktop browser profiles
1524
+ bs_macos_monterey: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="Monterey"
1525
+ bs_chrome_monterey: --profile bs_macos_monterey BS_BROWSER="Chrome" BS_VERSION="latest"
1526
+ bs_edge_monterey: --profile bs_macos_monterey BS_BROWSER="Edge" BS_VERSION="latest"
1527
+ bs_safari_monterey: --profile bs_macos_monterey BS_BROWSER="Safari" BS_VERSION="latest"
1528
+
1308
1529
  # BrowserStack Windows desktop browser profiles
1309
- bs_win8: --profile bs_desktop BS_OS="Windows" BS_OS_VERSION="8"
1310
- bs_win10: --profile bs_desktop BS_OS="Windows" BS_OS_VERSION="10"
1311
- bs_ff_win8: --profile bs_win8 BS_BROWSER="Firefox"
1312
- bs_ff_win10: --profile bs_win10 BS_BROWSER="Firefox"
1313
- bs_chrome_win8: --profile bs_win8 BS_BROWSER="Chrome"
1314
- bs_chrome_win10: --profile bs_win10 BS_BROWSER="Chrome"
1315
-
1316
- bs_ie10_win8: --profile bs_win8 BS_BROWSER="IE" BS_VERSION="10.0"
1317
- bs_ie11_win8: --profile bs_desktop BS_OS="Windows" BS_OS_VERSION="8.1" BS_BROWSER="IE" BS_VERSION="11.0"
1318
- bs_ie11_win10: --profile bs_win10 BS_BROWSER="IE" BS_VERSION="11.0"
1319
- bs_edge_win10: --profile bs_win10 BS_BROWSER="Edge" BS_VERSION="15.0"
1320
-
1530
+ bs_win11: --profile bs_desktop BS_OS="Windows" BS_OS_VERSION="11"
1531
+ bs_chrome_win11: --profile bs_win11 BS_BROWSER="Chrome" BS_VERSION="latest"
1532
+ bs_edge_win11: --profile bs_win11 BS_BROWSER="Edge" BS_VERSION="latest"
1533
+ bs_win10: --profile bs_desktop BS_OS="Windows" BS_OS_VERSION="10"
1534
+ bs_ie_win10: --profile bs_win10 BS_BROWSER="IE" BS_VERSION="11.0"
1535
+
1321
1536
  # BrowserStack iOS mobile browser profiles
1322
- bs_iphone: --profile bs_mobile BS_PLATFORM=MAC BS_OS=ios BS_BROWSER=iPhone DEVICE_TYPE=phone
1323
- bs_iphone6s_plus: --profile bs_iphone BS_DEVICE="iPhone 6S Plus"
1324
- bs_iphone6s: --profile bs_iphone BS_DEVICE="iPhone 6S"
1325
- bs_iphone6_plus: --profile bs_iphone BS_DEVICE="iPhone 6 Plus"
1326
- bs_iphone6: --profile bs_iphone BS_DEVICE="iPhone 6"
1327
- bs_iphone5s: --profile bs_iphone BS_DEVICE="iPhone 5S"
1328
- bs_iphone4s: --profile bs_iphone BS_DEVICE="iPhone 4S (6.0)"
1329
-
1330
- bs_ipad: --profile bs_mobile BS_PLATFORM=MAC BS_BROWSER=iPad DEVICE_TYPE=tablet
1331
- bs_ipad_pro: --profile bs_ipad BS_DEVICE="iPad Pro"
1332
- bs_ipad_air2: --profile bs_ipad BS_DEVICE="iPad Air 2"
1333
- bs_ipad_air: --profile bs_ipad BS_DEVICE="iPad Air"
1334
- bs_ipad_mini: --profile bs_ipad BS_DEVICE="iPad Mini 4"
1335
-
1336
- # BrowserStack iOS real device mobile browser profiles
1337
- bs_iphone_device: --profile bs_iphone BS_REAL_MOBILE="true"
1338
- bs_iphoneX: --profile bs_iphone_device BS_OS_VERSION="11.0" BS_DEVICE="iPhone X"
1339
- bs_iphone8_plus: --profile bs_iphone_device BS_OS_VERSION="11.0" BS_DEVICE="iPhone 8 Plus"
1340
- bs_iphone8: --profile bs_iphone_device BS_OS_VERSION="11.0" BS_DEVICE="iPhone 8"
1341
- bs_iphone7_plus: --profile bs_iphone_device BS_OS_VERSION="10.3" BS_DEVICE="iPhone 7 Plus"
1342
- bs_iphone7: --profile bs_iphone_device BS_OS_VERSION="10.3" BS_DEVICE="iPhone 7"
1343
-
1344
- bs_ipad_device: --profile bs_ipad BS_REAL_MOBILE="true"
1345
- bs_ipad5: --profile bs_ipad_device BS_OS_VERSION="11.0" BS_DEVICE="iPad 5th"
1537
+ bs_ipad: --profile bs_mobile BS_OS=ios BS_BROWSER=Safari DEVICE_TYPE=tablet BS_REAL_MOBILE="true"
1538
+ bs_ipad_pro_12: --profile bs_ipad BS_DEVICE="iPad Pro 12.9 2018" BS_OS_VERSION="15"
1346
1539
 
1347
1540
  # BrowserStack Android mobile browser profiles
1348
- bs_android: --profile bs_mobile BS_PLATFORM=ANDROID BS_BROWSER=android BS_OS=android
1349
- bs_android_phone: --profile bs_android DEVICE_TYPE=phone
1350
- bs_galaxy_s5: --profile bs_android_phone BS_DEVICE="Samsung Galaxy S5"
1351
- bs_nexus5: --profile bs_android_phone BS_DEVICE="Google Nexus 5"
1352
- bs_moto_razr: --profile bs_android_phone BS_DEVICE="Motorola Razr"
1353
- bs_sony_xperia: --profile bs_android_phone BS_DEVICE="Sony Xperia Tipo"
1354
-
1355
- bs_android_tablet: --profile bs_android DEVICE_TYPE=tablet
1356
- bs_kindle_fire_hd89: --profile bs_android_tablet BS_DEVICE="Amazon Kindle Fire HD 8.9"
1357
- bs_kindle_fire_hdx7: --profile bs_android_tablet BS_DEVICE="Amazon Kindle Fire HDX 7"
1358
- bs_kindle_fire2: --profile bs_android_tablet BS_DEVICE="Amazon Kindle Fire 2"
1359
- bs_nexus7: --profile bs_android_tablet BS_DEVICE="Google Nexus 7"
1360
-
1361
- # BrowserStack Android real device mobile browser profiles
1362
- bs_android_device: --profile bs_mobile BS_BROWSER=android BS_OS=android BS_REAL_MOBILE="true"
1363
- bs_google_pixel8: --profile bs_android_device BS_DEVICE="Google Pixel" BS_OS_VERSION="8.0" DEVICE_TYPE=phone
1364
- bs_google_pixel71: --profile bs_android_device BS_DEVICE="Google Pixel" BS_OS_VERSION="7.1" DEVICE_TYPE=phone
1365
- bs_nexus6: --profile bs_android_device BS_DEVICE="Google Nexus 6" DEVICE_TYPE=phone
1366
- bs_galaxy_s8_plus: --profile bs_android_device BS_DEVICE="Samsung Galaxy S8 Plus" DEVICE_TYPE=phone
1367
- bs_galaxy_s8: --profile bs_android_device BS_DEVICE="Samsung Galaxy S8" DEVICE_TYPE=phone
1368
- bs_galaxy_s7: --profile bs_android_device BS_DEVICE="Samsung Galaxy S7" DEVICE_TYPE=phone
1369
- bs_galaxy_s6: --profile bs_android_device BS_DEVICE="Samsung Galaxy S6" DEVICE_TYPE=phone
1370
- bs_galaxy_note4: --profile bs_android_device BS_DEVICE="Samsung Galaxy Note 4" DEVICE_TYPE=tablet
1371
- bs_nexus9: --profile bs_android_device BS_DEVICE="Google Nexus 9" DEVICE_TYPE=tablet
1541
+ bs_android: --profile bs_mobile BS_OS=android BS_BROWSER=Chrome DEVICE_TYPE=tablet BS_REAL_MOBILE="true"
1542
+ bs_android_tablet: --profile bs_android BS_DEVICE="Samsung Galaxy Tab S7" BS_OS_VERSION="10.0"
1372
1543
 
1373
1544
 
1374
1545
  #==============
1375
1546
  # profiles for remotely hosted web browsers on the SauceLabs service
1376
1547
  #==============
1377
1548
 
1378
- saucelabs: WEB_BROWSER=saucelabs SL_USERNAME="<INSERT USER NAME HERE>" SL_AUTHKEY="<INSERT PASSWORD HERE>"
1379
- sl_desktop: --profile saucelabs <%= desktop %>
1549
+ saucelabs: WEB_BROWSER=saucelabs SL_USERNAME="<INSERT USER NAME HERE>" SL_AUTHKEY="<INSERT PASSWORD HERE>" DATA_CENTER="<INSERT DATA CENTER HERE"
1550
+ sl_desktop: --profile saucelabs <%= desktop %>
1551
+ sl_mobile: --profile saucelabs <%= mobile %>
1380
1552
 
1381
- # SauceLabs OS X desktop browser profiles
1382
- sl_osx_sierra: --profile sl_desktop SL_OS="macOS 10.12"
1383
- sl_ff_sierra: --profile sl_osx_sierra SL_BROWSER="firefox"
1384
- sl_chrome_sierra: --profile sl_osx_sierra SL_BROWSER="chrome"
1385
- sl_safari_sierra: --profile sl_osx_sierra SL_BROWSER="safari"
1386
-
1387
- sl_osx_el_capitan: --profile sl_desktop SL_OS="OS X 10.11"
1388
- sl_ff_el_cap: --profile sl_osx_el_capitan SL_BROWSER="firefox"
1389
- sl_chrome_el_cap: --profile sl_osx_el_capitan SL_BROWSER="chrome"
1390
- sl_safari_el_cap: --profile sl_osx_el_capitan SL_BROWSER="safari"
1391
-
1392
- sl_osx_yosemite: --profile sl_desktop SL_OS="OS X 10.10" RESOLUTION="1920x1200"
1393
- sl_ff_yos: --profile sl_osx_yosemite SL_BROWSER="firefox"
1394
- sl_chrome_yos: --profile sl_osx_yosemite SL_BROWSER="chrome"
1395
- sl_safari_yos: --profile sl_osx_yosemite SL_BROWSER="safari"
1553
+ # SauceLabs macOS desktop browser profiles
1554
+ sl_macos_monterey: --profile sl_desktop SL_OS="macOS 12" RESOLUTION="1920x1440"
1555
+ sl_chrome_monterey: --profile sl_macos_monterey SL_BROWSER="chrome" SL_VERSION="latest"
1556
+ sl_edge_monterey: --profile sl_macos_monterey SL_BROWSER="MicrosoftEdge" SL_VERSION="latest"
1557
+ sl_firefox_monterey: --profile sl_macos_monterey SL_BROWSER="Firefox" SL_VERSION="latest"
1396
1558
 
1397
1559
  # SauceLabs Windows desktop browser profiles
1398
- sl_win8: --profile sl_desktop SL_OS="Windows 8.1" RESOLUTION="1280x1024"
1399
- sl_win10: --profile sl_desktop SL_OS="Windows 10" RESOLUTION="1280x1024"
1400
- sl_ff_win8: --profile sl_win8 SL_BROWSER="firefox"
1401
- sl_ff_win10: --profile sl_win10 SL_BROWSER="firefox"
1402
- sl_chrome_win8: --profile sl_win8 SL_BROWSER="chrome"
1403
- sl_chrome_win10: --profile sl_win10 SL_BROWSER="chrome"
1560
+ sl_windows: --profile sl_desktop RESOLUTION="1920x1200"
1561
+ sl_edge_win11: --profile sl_windows SL_OS="Windows 11" SL_BROWSER="MicrosoftEdge" SL_VERSION="latest"
1562
+ sl_ie_win10: --profile sl_windows SL_OS="Windows 10" SL_BROWSER="internet explorer" SL_VERSION="11"
1404
1563
 
1405
- sl_ie11_win8: --profile sl_win8 SL_BROWSER="internet explorer" SL_VERSION="11.0"
1406
- sl_ie11_win10: --profile sl_win10 SL_BROWSER="internet explorer"
1564
+ # SauceLabs iOS mobile browser profiles
1565
+ sl_ipad: --profile sl_mobile DEVICE_TYPE=tablet SL_PLATFORM=iOS SL_BROWSER=Safari
1566
+ sl_ipad_pro_12: --profile sl_ipad SL_DEVICE="iPad Pro (12.9 inch) (5th generation) Simulator" SL_VERSION="15.0"
1407
1567
 
1408
1568
 
1409
1569
  #==============
1410
1570
  # profiles for remotely hosted web browsers on the TestingBot service
1411
1571
  #==============
1412
1572
 
1413
- testingbot: WEB_BROWSER=testingbot TB_USERNAME="<INSERT USER NAME HERE>" TB_AUTHKEY="<INSERT PASSWORD HERE>"
1414
- tb_desktop: --profile testingbot <%= desktop %> RESOLUTION="1920x1200"
1415
- tb_mobile: --profile testingbot <%= mobile %>
1416
-
1417
- # TestingBot OS X desktop browser profiles
1418
- tb_macos_sierra: --profile tb_desktop TB_OS="SIERRA"
1419
- tb_ff_sierra: --profile tb_macos_sierra TB_BROWSER="firefox"
1420
- tb_chrome_sierra: --profile tb_macos_sierra TB_BROWSER="chrome"
1421
- tb_safari_sierra: --profile tb_macos_sierra TB_BROWSER="safari" TB_VERSION="10"
1422
-
1423
- tb_osx_el_capitan: --profile tb_desktop TB_OS="CAPITAN"
1424
- tb_ff_el_cap: --profile tb_osx_el_capitan TB_BROWSER="firefox"
1425
- tb_chrome_el_cap: --profile tb_osx_el_capitan TB_BROWSER="chrome"
1426
- tb_safari_el_cap: --profile tb_osx_el_capitan TB_BROWSER="safari" TB_VERSION="9"
1573
+ testingbot: WEB_BROWSER=testingbot TB_USERNAME="<INSERT USER NAME HERE>" TB_AUTHKEY="<INSERT PASSWORD HERE>"
1574
+ tb_desktop: --profile testingbot <%= desktop %> RESOLUTION="1920x1200"
1427
1575
 
1428
- tb_osx_yosemite: --profile tb_desktop TB_OS="YOSEMITE"
1429
- tb_ff_yos: --profile tb_osx_yosemite TB_BROWSER="firefox"
1430
- tb_chrome_yos: --profile tb_osx_yosemite TB_BROWSER="chrome"
1431
- tb_safari_yos: --profile tb_osx_yosemite TB_BROWSER="safari" TB_VERSION="8"
1576
+ # TestingBot macOS desktop browser profiles
1577
+ tb_macos_monterey: --profile tb_desktop TB_OS="MONTEREY"
1578
+ tb_chrome_monterey: --profile tb_macos_monterey TB_BROWSER="chrome" TB_VERSION="latest"
1579
+ tb_edge_monterey: --profile tb_macos_monterey TB_BROWSER="microsoftedge" TB_VERSION="latest"
1432
1580
 
1433
1581
  # TestingBot Windows desktop browser profiles
1434
- tb_win8: --profile tb_desktop TB_OS="WIN8"
1435
- tb_win10: --profile tb_desktop TB_OS="WIN10"
1436
- tb_ff_win8: --profile tb_win8 TB_BROWSER="firefox"
1437
- tb_ff_win10: --profile tb_win10 TB_BROWSER="firefox"
1438
- tb_chrome_win8: --profile tb_win8 TB_BROWSER="chrome"
1439
- tb_chrome_win10: --profile tb_win10 TB_BROWSER="chrome"
1440
-
1441
- tb_ie11_win8: --profile tb_win8 TB_BROWSER="internet explorer" TB_VERSION="11"
1442
- tb_ie10_win8: --profile tb_win8 TB_BROWSER="internet explorer" TB_VERSION="10"
1443
- tb_ie11_win10: --profile tb_win10 TB_BROWSER="internet explorer" TB_VERSION="11"
1444
- tb_edge_win10: --profile tb_win10 TB_BROWSER="microsoftedge" TB_VERSION="14"
1582
+ tb_win11: --profile tb_desktop TB_OS="WIN11"
1583
+ tb_edge_win11: --profile tb_win11 TB_BROWSER="microsoftedge" TB_VERSION="latest"
1584
+ tb_win10: --profile tb_desktop TB_OS="WIN10"
1585
+ tb_ie_win10: --profile tb_win10 TB_BROWSER="internet explorer" TB_VERSION="11"
1445
1586
 
1446
1587
 
1447
1588
  #==============
1448
1589
  # profiles for remotely hosted web browsers on the LambdaTest service
1449
1590
  #==============
1450
1591
 
1451
- lambdatest: WEB_BROWSER=lambdatest LT_USERNAME=<INSERT USER NAME HERE> LT_AUTHKEY=<INSERT PASSWORD HERE>
1452
- lt_desktop: --profile lambdatest <%= desktop %> RESOLUTION="1920x1080"
1453
- lt_firefox: LT_BROWSER="Firefox" LT_VERSION="67.0"
1454
- lt_chrome: LT_BROWSER="Chrome" LT_VERSION="76.0"
1455
- lt_safari: LT_BROWSER="Safari" ALLOW_COOKIES="true" ALLOW_POPUPS="true"
1456
-
1457
- # LambdaTest OS X desktop browser profiles
1458
- lt_macos_mojave: --profile lt_desktop LT_OS="macOS Mojave"
1459
- lt_ff_mojave: --profile lt_macos_mojave --profile lt_firefox
1460
- lt_chrome_mojave: --profile lt_macos_mojave --profile lt_chrome
1461
- lt_safari_mojave: --profile lt_macos_mojave --profile lt_safari LT_VERSION="12.0"
1462
-
1463
- lt_macos_high_sierra: --profile lt_desktop LT_OS="macOS High Sierra"
1464
- lt_ff_high_sierra: --profile lt_macos_high_sierra --profile lt_firefox
1465
- lt_chrome_high_sierra: --profile lt_macos_high_sierra --profile lt_chrome
1466
- lt_safari_high_sierra: --profile lt_macos_high_sierra --profile lt_safari LT_VERSION="11.0"
1592
+ lambdatest: WEB_BROWSER=lambdatest LT_USERNAME=<INSERT USER NAME HERE> LT_AUTHKEY=<INSERT PASSWORD HERE>
1593
+ lt_desktop: --profile lambdatest <%= desktop %> RESOLUTION="2560x1440"
1467
1594
 
1468
- lt_macos_sierra: --profile lt_desktop LT_OS="macOS Sierra"
1469
- lt_ff_sierra: --profile lt_macos_sierra --profile lt_firefox
1470
- lt_chrome_sierra: --profile lt_macos_sierra --profile lt_chrome
1471
- lt_safari_sierra: --profile lt_macos_sierra --profile lt_safari LT_VERSION="10.0"
1595
+ # LambdaTest macOS desktop browser profiles
1596
+ lt_macos_monterey: --profile lt_desktop LT_OS="MacOS Monterey"
1597
+ lt_chrome_monterey: --profile lt_macos_monterey LT_BROWSER="Chrome" LT_VERSION="98.0"
1598
+ lt_edge_monterey: --profile lt_macos_monterey LT_BROWSER="MicrosoftEdge" LT_VERSION="97.0"
1472
1599
 
1473
1600
  # LambdaTest Windows desktop browser profiles
1474
- lt_win10: --profile lt_desktop LT_OS="Windows 10"
1475
- lt_ff_win10: --profile lt_win10 --profile lt_firefox
1476
- lt_chrome_win10: --profile lt_win10 --profile lt_chrome
1477
- lt_ie11_win10: --profile lt_win10 LT_BROWSER="Internet Explorer" LT_VERSION="11.0"
1478
- lt_edge_win10: --profile lt_win10 LT_BROWSER="MicrosoftEdge" LT_VERSION="18.0"
1601
+ lt_win11: --profile lt_desktop LT_OS="Windows 11"
1602
+ lt_edge_win11: --profile lt_win11 LT_BROWSER="MicrosoftEdge" LT_VERSION="98.0"
1603
+ lt_win10: --profile lt_desktop LT_OS="Windows 10"
1604
+ lt_i0_win11: --profile lt_win10 LT_BROWSER="Internet Explorer" LT_VERSION="11.0"
1479
1605
 
1480
1606
 
1481
1607
  To specify a locally hosted target browser using a profile at runtime, you use the flag `--profile` or `-p` followed by the profile name when
@@ -134,14 +134,6 @@
134
134
  :css_height: 869
135
135
  :default_orientation: portrait
136
136
  :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1"
137
- :android_phone:
138
- :name: "Generic Android phone"
139
- :os: android
140
- :type: phone
141
- :css_width: 360
142
- :css_height: 640
143
- :default_orientation: portrait
144
- :user_agent: "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19"
145
137
  nexus6:
146
138
  :name: "Nexus 6 or 6P phone"
147
139
  :os: android
@@ -302,14 +294,6 @@ nexus6:
302
294
  :css_height: 768
303
295
  :default_orientation: landscape
304
296
  :user_agent: "Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 EdgiOS/44.2.1 Mobile/15E148 Safari/605.1.15"
305
- :android_tablet:
306
- :name: "Generic Android tablet"
307
- :os: android
308
- :type: tablet
309
- :css_width: 1024
310
- :css_height: 768
311
- :default_orientation: landscape
312
- :user_agent: "Mozilla/5.0 (Linux; U; Android 3.0; en-us; GT-P7100 Build/HRI83) AppleWebkit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13"
313
297
  :kindle_fire:
314
298
  :name: "Kindle Fire"
315
299
  :os: kindle
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '4.1.1'
2
+ VERSION = '4.1.2'
3
3
  end
@@ -0,0 +1,11 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Indexed Property Page</title>
6
+ </head>
7
+ <body>
8
+
9
+
10
+ </body>
11
+ </html>
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.1.1
4
+ version: 4.1.2
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: 2022-03-03 00:00:00.000000000 Z
11
+ date: 2022-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -258,6 +258,7 @@ files:
258
258
  - CHANGELOG.md
259
259
  - CODE_OF_CONDUCT.md
260
260
  - Gemfile
261
+ - Gemfile.lock
261
262
  - LICENSE.md
262
263
  - README.md
263
264
  - Rakefile
@@ -293,7 +294,7 @@ files:
293
294
  - lib/testcentricity_web/web_elements/ui_elements_helper.rb
294
295
  - lib/testcentricity_web/web_elements/video.rb
295
296
  - lib/testcentricity_web/world_extensions.rb
296
- - my_templates/default/method_details/setup.rb
297
+ - test_site/test_page.html
297
298
  - testcentricity_web.gemspec
298
299
  homepage: ''
299
300
  licenses:
@@ -1,3 +0,0 @@
1
- def source
2
- return
3
- end