testcentricity_web 4.1.1 → 4.1.2

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