testcentricity_web 2.0.23 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +44 -19
- data/lib/devices/devices.yml +48 -6
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/webdriver_helper.rb +79 -31
- data/testcentricity_web.gemspec +3 -3
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 449c4f5fd5eb44182009f95be69073a738d2580f
|
4
|
+
data.tar.gz: 8fdaf6943f6778d4c396f790281dd26bcf5962a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae73029e5f1ee59f658851678dd0505ce3d6f2c9443fcfc0d8a49269155846b0d326a803e1286a60823fdc4c9ac3a800f20be2e9e7921c5e72d3989904c9bc61
|
7
|
+
data.tar.gz: 81fb0a83391716e45795a4b8e0e4dce570d9df7a0a6d2fc10811385e2d5487c540ca32b20f482d5626f7f8d2d8465861898c0ec40a755b199a5162c761fbb52a
|
data/README.md
CHANGED
@@ -22,6 +22,25 @@ locally hosted instances of Firefox 48 or greater requires Marionette (aka gecko
|
|
22
22
|
feature incomplete and potentially unstable. More information can be found [here](https://github.com/teamcapybara/capybara/issues/1710).
|
23
23
|
|
24
24
|
|
25
|
+
## What's New
|
26
|
+
|
27
|
+
* Added device profiles for iPhone 8, iPhone 8 Plus, iPhone X devices running iOS 11
|
28
|
+
* Added device profile for iPad Pro 10.5" with iOS 11
|
29
|
+
* Updated iPhone 7 and iPhone 7 Plus profiles to iOS 10
|
30
|
+
* Updated Google Pixel and Google Pixel XL profiles to Android 8
|
31
|
+
* Added device profiles for iPhone 7 (iOS 10) with Mobile Chrome browser and iPad (iOS 10) with Mobile Chrome browser
|
32
|
+
|
33
|
+
|
34
|
+
## What's Fixed
|
35
|
+
|
36
|
+
* The `TestCentricity::WebDriverConnect.initialize_web_driver` method now sets the `Environ` object to the correct device connection states for local and
|
37
|
+
cloud hosted browsers.
|
38
|
+
* The `TestCentricity::WebDriverConnect.initialize_web_driver` method no longer calls `initialize_browser_size` when running tests against cloud hosted
|
39
|
+
mobile web browser, which was resulting in Appium throwing exceptions for unsupported method calls.
|
40
|
+
* The `TestCentricity::WebDriverConnect.set_webdriver_path` method now correctly sets the path for Chrome webDrivers when the `HOST_BROWSER` Environment
|
41
|
+
Variable is set to `chrome`. Tests against locally hosted emulated mobile web browser running on a local instance of Chrome will now work correctly.
|
42
|
+
|
43
|
+
|
25
44
|
## Installation
|
26
45
|
|
27
46
|
Add this line to your automation project's Gemfile:
|
@@ -198,14 +217,6 @@ Web pages are made up of UI elements like text fields, check boxes, combo boxes,
|
|
198
217
|
button :sign_up_button, 'button#registrationSignUp'
|
199
218
|
end
|
200
219
|
|
201
|
-
|
202
|
-
Once your **Page Objects** have been instantiated, you can interact with the **UI Elements** in your **Page Objects**. An example is shown
|
203
|
-
below:
|
204
|
-
|
205
|
-
login_page.user_id_field.set('snicklefritz')
|
206
|
-
login_page.password_field.set('Pa55w0rd')
|
207
|
-
login_page.login_button.click
|
208
|
-
|
209
220
|
|
210
221
|
### Adding Methods to your Page Object
|
211
222
|
|
@@ -723,8 +734,10 @@ mobile web browsers, the `WEB_BROWSER` Environment Variable must be set to one o
|
|
723
734
|
|
724
735
|
`WEB_BROWSER` | `HOST_BROWSER` | **CSS Screen Dimensions** | **Default Orientation** | **OS Version**
|
725
736
|
----------------------|----------------------|-----------|----------|---------
|
726
|
-
`ipad` |`firefox` or `chrome` |1024 x 768 |landscape |iOS
|
727
|
-
`ipad_pro` |`firefox` or `chrome` |1366 x 1024|landscape |iOS
|
737
|
+
`ipad` |`firefox` or `chrome` |1024 x 768 |landscape |iOS 10
|
738
|
+
`ipad_pro` |`firefox` or `chrome` |1366 x 1024|landscape |iOS 11
|
739
|
+
`ipad_pro_10_5` |`firefox` or `chrome` |1112 x 834 |landscape |iOS 11
|
740
|
+
`ipad_chrome` |`firefox` or `chrome` |1024 x 768 |landscape |iOS 10 - Mobile Chrome browser for iOS
|
728
741
|
`android_tablet` |`firefox` or `chrome` |1024 x 768 |landscape |Android 3.0
|
729
742
|
`kindle_fire` |`firefox` or `chrome` |1024 x 600 |landscape |
|
730
743
|
`kindle_firehd7` |`firefox` or `chrome` |800 x 480 |landscape |Fire OS 3
|
@@ -742,10 +755,14 @@ mobile web browsers, the `WEB_BROWSER` Environment Variable must be set to one o
|
|
742
755
|
`iphone6_plus` |`firefox` or `chrome` |414 x 736 |portrait |iOS 9.1
|
743
756
|
`iphone7` |`firefox` or `chrome` |375 x 667 |portrait |iOS 10
|
744
757
|
`iphone7_plus` |`firefox` or `chrome` |414 x 736 |portrait |iOS 10
|
745
|
-
`
|
746
|
-
`
|
747
|
-
`
|
748
|
-
`
|
758
|
+
`iphone7_chrome` |`firefox` or `chrome` |375 x 667 |portrait |iOS 10 - Mobile Chrome browser for iOS
|
759
|
+
`iphone8` |`firefox` or `chrome` |375 x 667 |portrait |iOS 11
|
760
|
+
`iphone9_plus` |`firefox` or `chrome` |414 x 736 |portrait |iOS 11
|
761
|
+
`iphonex` |`firefox` or `chrome` |375 x 812 |portrait |iOS 11
|
762
|
+
`android_phone` |`firefox` or `chrome` |320 x 480 |portrait |Android 4
|
763
|
+
`nexus6` |`firefox` or `chrome` |411 x 731 |portrait |Android 6
|
764
|
+
`pixel` |`firefox` or `chrome` |411 x 731 |portrait |Android 8
|
765
|
+
`pixel_xl` |`firefox` or `chrome` |411 x 731 |portrait |Android 8
|
749
766
|
`samsung_galaxy_s4` |`firefox` or `chrome` |360 x 640 |portrait |Android 5.0.1
|
750
767
|
`samsung_galaxy_s5` |`firefox` or `chrome` |360 x 640 |portrait |Android 6.0.1
|
751
768
|
`samsung_galaxy_s6` |`firefox` or `chrome` |360 x 640 |portrait |Android 6.0.1
|
@@ -826,6 +843,7 @@ for information regarding the specific capabilities.
|
|
826
843
|
`WEB_BROWSER` | Must be set to `browserstack`
|
827
844
|
`BS_USERNAME` | Must be set to your BrowserStack account user name
|
828
845
|
`BS_AUTHKEY` | Must be set to your BrowserStack account access key
|
846
|
+
`BS_OS` | Must be set to `ios` or `android`
|
829
847
|
`BS_BROWSER` | Must be set to `iPhone`, `iPad`, or `android`
|
830
848
|
`BS_PLATFORM` | Must be set to `MAC` (for iOS) or `ANDROID`
|
831
849
|
`BS_DEVICE` | Refer to `device` capability in chart
|
@@ -963,6 +981,8 @@ service(s) that you intend to connect with.
|
|
963
981
|
|
964
982
|
ipad: WEB_BROWSER=ipad HOST_BROWSER=firefox <%= mobile %>
|
965
983
|
ipad_pro: WEB_BROWSER=ipad_pro HOST_BROWSER=firefox <%= mobile %>
|
984
|
+
ipad_pro_10_5: WEB_BROWSER=ipad_pro_10_5 HOST_BROWSER=firefox <%= mobile %>
|
985
|
+
ipad_chrome: WEB_BROWSER=ipad_chrome HOST_BROWSER=firefox <%= mobile %>
|
966
986
|
iphone: WEB_BROWSER=iphone HOST_BROWSER=firefox <%= mobile %>
|
967
987
|
iphone4: WEB_BROWSER=iphone4 HOST_BROWSER=firefox <%= mobile %>
|
968
988
|
iphone5: WEB_BROWSER=iphone5 HOST_BROWSER=firefox <%= mobile %>
|
@@ -970,6 +990,10 @@ service(s) that you intend to connect with.
|
|
970
990
|
iphone6_plus: WEB_BROWSER=iphone6_plus HOST_BROWSER=firefox <%= mobile %>
|
971
991
|
iphone7: WEB_BROWSER=iphone7 HOST_BROWSER=firefox <%= mobile %>
|
972
992
|
iphone7_plus: WEB_BROWSER=iphone7_plus HOST_BROWSER=firefox <%= mobile %>
|
993
|
+
iphone7_chrome: WEB_BROWSER=iphone7_chrome HOST_BROWSER=firefox <%= mobile %>
|
994
|
+
iphone8: WEB_BROWSER=iphone8 HOST_BROWSER=firefox <%= mobile %>
|
995
|
+
iphone8_plus: WEB_BROWSER=iphone8_plus HOST_BROWSER=firefox <%= mobile %>
|
996
|
+
iphoneX: WEB_BROWSER=iphonex HOST_BROWSER=firefox <%= mobile %>
|
973
997
|
android_phone: WEB_BROWSER=android_phone HOST_BROWSER=firefox <%= mobile %>
|
974
998
|
nexus6: WEB_BROWSER=nexus6 HOST_BROWSER=firefox <%= mobile %>
|
975
999
|
android_tablet: WEB_BROWSER=android_tablet HOST_BROWSER=firefox <%= mobile %>
|
@@ -1070,7 +1094,7 @@ service(s) that you intend to connect with.
|
|
1070
1094
|
bs_edge_win10: --profile bs_win10 BS_BROWSER="Edge" BS_VERSION="13.0"
|
1071
1095
|
|
1072
1096
|
# BrowserStack iOS mobile browser profiles
|
1073
|
-
bs_iphone: --profile bs_mobile BS_PLATFORM=MAC BS_BROWSER=iPhone
|
1097
|
+
bs_iphone: --profile bs_mobile BS_PLATFORM=MAC BS_OS=ios BS_BROWSER=iPhone
|
1074
1098
|
bs_iphone6s_plus: --profile bs_iphone BS_DEVICE="iPhone 6S Plus"
|
1075
1099
|
bs_iphone6s: --profile bs_iphone BS_DEVICE="iPhone 6S"
|
1076
1100
|
bs_iphone6_plus: --profile bs_iphone BS_DEVICE="iPhone 6 Plus"
|
@@ -1084,12 +1108,12 @@ service(s) that you intend to connect with.
|
|
1084
1108
|
bs_ipad_mini: --profile bs_ipad BS_DEVICE="iPad Mini 4"
|
1085
1109
|
|
1086
1110
|
# BrowserStack iOS real device mobile browser profiles
|
1087
|
-
bs_iphone_device: --profile bs_mobile BS_BROWSER=iPhone BS_REAL_MOBILE="true"
|
1111
|
+
bs_iphone_device: --profile bs_mobile BS_BROWSER=iPhone BS_OS=ios BS_REAL_MOBILE="true"
|
1088
1112
|
bs_iphone7_plus: --profile bs_iphone_device BS_DEVICE="iPhone 7 Plus"
|
1089
1113
|
bs_iphone7: --profile bs_iphone_device BS_DEVICE="iPhone 7"
|
1090
1114
|
|
1091
1115
|
# BrowserStack Android mobile browser profiles
|
1092
|
-
bs_android: --profile bs_mobile BS_PLATFORM=ANDROID BS_BROWSER=android
|
1116
|
+
bs_android: --profile bs_mobile BS_PLATFORM=ANDROID BS_BROWSER=android BS_OS=android
|
1093
1117
|
bs_galaxy_s5: --profile bs_android BS_DEVICE="Samsung Galaxy S5"
|
1094
1118
|
bs_kindle_fire_hd89: --profile bs_android BS_DEVICE="Amazon Kindle Fire HD 8.9"
|
1095
1119
|
bs_kindle_fire_hdx7: --profile bs_android BS_DEVICE="Amazon Kindle Fire HDX 7"
|
@@ -1100,8 +1124,9 @@ service(s) that you intend to connect with.
|
|
1100
1124
|
bs_sony_xperia: --profile bs_android BS_DEVICE="Sony Xperia Tipo"
|
1101
1125
|
|
1102
1126
|
# BrowserStack Android real device mobile browser profiles
|
1103
|
-
bs_android_device: --profile bs_mobile BS_BROWSER=android BS_REAL_MOBILE="true"
|
1104
|
-
|
1127
|
+
bs_android_device: --profile bs_mobile BS_BROWSER=android BS_OS=android BS_REAL_MOBILE="true"
|
1128
|
+
bs_google_pixel8: --profile bs_android_device BS_DEVICE="Google Pixel" BS_OS_VERSION="8.0"
|
1129
|
+
bs_google_pixel71: --profile bs_android_device BS_DEVICE="Google Pixel" BS_OS_VERSION="7.1"
|
1105
1130
|
bs_nexus9: --profile bs_android_device BS_DEVICE="Google Nexus 9"
|
1106
1131
|
bs_nexus6: --profile bs_android_device BS_DEVICE="Google Nexus 6"
|
1107
1132
|
bs_galaxy_s7: --profile bs_android_device BS_DEVICE="Samsung Galaxy S7"
|
data/lib/devices/devices.yml
CHANGED
@@ -39,14 +39,42 @@
|
|
39
39
|
:css_width: 375
|
40
40
|
:css_height: 667
|
41
41
|
:default_orientation: portrait
|
42
|
-
:user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS
|
42
|
+
:user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/603.1.23 (KHTML, like Gecko) Version/10.0 Mobile/14E5239e Safari/602.1"
|
43
43
|
:iphone7_plus:
|
44
44
|
:name: "iPhone 7 Plus"
|
45
45
|
:os: "ios"
|
46
46
|
:css_width: 414
|
47
47
|
:css_height: 736
|
48
48
|
:default_orientation: portrait
|
49
|
-
:user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS
|
49
|
+
:user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/603.1.23 (KHTML, like Gecko) Version/10.0 Mobile/14E5239e Safari/602.1"
|
50
|
+
:iphone7_chrome:
|
51
|
+
:name: "iPhone 7 - Chrome"
|
52
|
+
:os: "ios"
|
53
|
+
:css_width: 375
|
54
|
+
:css_height: 667
|
55
|
+
:default_orientation: portrait
|
56
|
+
:user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1"
|
57
|
+
:iphone8:
|
58
|
+
:name: "iPhone 8"
|
59
|
+
:os: "ios"
|
60
|
+
:css_width: 375
|
61
|
+
:css_height: 667
|
62
|
+
:default_orientation: portrait
|
63
|
+
:user_agent: "Mozilla/5.0 (iPhone; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
|
64
|
+
:iphone8_plus:
|
65
|
+
:name: "iPhone 8 Plus"
|
66
|
+
:os: "ios"
|
67
|
+
:css_width: 414
|
68
|
+
:css_height: 736
|
69
|
+
:default_orientation: portrait
|
70
|
+
:user_agent: "Mozilla/5.0 (iPhone; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
|
71
|
+
:iphonex:
|
72
|
+
:name: "iPhone X"
|
73
|
+
:os: "ios"
|
74
|
+
:css_width: 375
|
75
|
+
:css_height: 812
|
76
|
+
:default_orientation: portrait
|
77
|
+
:user_agent: "Mozilla/5.0 (iPhone; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
|
50
78
|
:android_phone:
|
51
79
|
:name: "Generic Android phone"
|
52
80
|
:os: "android"
|
@@ -88,14 +116,14 @@ nexus6:
|
|
88
116
|
:css_width: 411
|
89
117
|
:css_height: 731
|
90
118
|
:default_orientation: portrait
|
91
|
-
:user_agent: "Mozilla/5.0 (Linux; Android
|
119
|
+
:user_agent: "Mozilla/5.0 (Linux; Android 8.0.0; Pixel Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.66 Mobile Safari/537.36"
|
92
120
|
:pixel_xl:
|
93
121
|
:name: "Google Pixel XL phone"
|
94
122
|
:os: "android"
|
95
123
|
:css_width: 411
|
96
124
|
:css_height: 731
|
97
125
|
:default_orientation: portrait
|
98
|
-
:user_agent: "Mozilla/5.0 (Linux; Android
|
126
|
+
:user_agent: "Mozilla/5.0 (Linux; Android 8.0.0; Pixel XL Build/OPR6.170623.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.116 Mobile Safari/537.36"
|
99
127
|
:windows_phone8:
|
100
128
|
:name: "Generic Windows 8 phone"
|
101
129
|
:os: "windows"
|
@@ -130,14 +158,28 @@ nexus6:
|
|
130
158
|
:css_width: 1024
|
131
159
|
:css_height: 768
|
132
160
|
:default_orientation: landscape
|
133
|
-
:user_agent: "Mozilla/5.0 (iPad; CPU OS
|
161
|
+
:user_agent: "Mozilla/5.0 (iPad; CPU OS 10_3 like Mac OS X) AppleWebKit/603.1.23 (KHTML, like Gecko) Version/10.0 Mobile/14E5239e Safari/602.1"
|
134
162
|
:ipad_pro:
|
135
163
|
:name: "iPad Pro"
|
136
164
|
:os: "ios"
|
137
165
|
:css_width: 1366
|
138
166
|
:css_height: 1024
|
139
167
|
:default_orientation: landscape
|
140
|
-
:user_agent: "Mozilla/5.0 (iPad; CPU OS
|
168
|
+
:user_agent: "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
|
169
|
+
:ipad_pro_10_5:
|
170
|
+
:name: "iPad Pro 10.5 in."
|
171
|
+
:os: "ios"
|
172
|
+
:css_width: 1112
|
173
|
+
:css_height: 834
|
174
|
+
:default_orientation: landscape
|
175
|
+
:user_agent: "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
|
176
|
+
:ipad_chrome:
|
177
|
+
:name: "iPad - Chrome"
|
178
|
+
:os: "ios"
|
179
|
+
:css_width: 1024
|
180
|
+
:css_height: 768
|
181
|
+
:default_orientation: landscape
|
182
|
+
:user_agent: "Mozilla/5.0 (iPad; CPU OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1"
|
141
183
|
:android_tablet:
|
142
184
|
:name: "Generic Android tablet"
|
143
185
|
:os: "android"
|
@@ -83,6 +83,15 @@ module TestCentricity
|
|
83
83
|
when :edge
|
84
84
|
path_to_driver = 'windows/MicrosoftWebDriver.exe'
|
85
85
|
Selenium::WebDriver::Edge.driver_path = File.join(project_path, base_path, path_to_driver)
|
86
|
+
else
|
87
|
+
if ENV['HOST_BROWSER'] && ENV['HOST_BROWSER'].downcase.to_sym == :chrome
|
88
|
+
if OS.osx?
|
89
|
+
path_to_driver = 'mac/chromedriver'
|
90
|
+
elsif OS.windows?
|
91
|
+
path_to_driver = 'windows/chromedriver.exe'
|
92
|
+
end
|
93
|
+
Selenium::WebDriver::Chrome.driver_path = File.join(project_path, base_path, path_to_driver)
|
94
|
+
end
|
86
95
|
end
|
87
96
|
puts "The webdriver path is: #{File.join(project_path, base_path, path_to_driver)}" unless path_to_driver.nil?
|
88
97
|
end
|
@@ -123,7 +132,22 @@ module TestCentricity
|
|
123
132
|
end
|
124
133
|
|
125
134
|
def self.initialize_local_browser
|
135
|
+
if OS.osx?
|
136
|
+
Environ.os = 'OS X'
|
137
|
+
elsif OS.windows?
|
138
|
+
Environ.os = 'Windows'
|
139
|
+
end
|
140
|
+
|
126
141
|
browser = ENV['WEB_BROWSER']
|
142
|
+
|
143
|
+
case browser.downcase.to_sym
|
144
|
+
when :firefox, :chrome, :ie, :safari, :edge
|
145
|
+
Environ.platform = :desktop
|
146
|
+
else
|
147
|
+
Environ.platform = :mobile
|
148
|
+
Environ.device_type = Browsers.mobile_device_name(browser)
|
149
|
+
end
|
150
|
+
|
127
151
|
Capybara.default_driver = :selenium
|
128
152
|
Capybara.register_driver :selenium do |app|
|
129
153
|
case browser.downcase.to_sym
|
@@ -131,8 +155,6 @@ module TestCentricity
|
|
131
155
|
Capybara::Selenium::Driver.new(app, :browser => browser.to_sym)
|
132
156
|
else
|
133
157
|
user_agent = Browsers.mobile_device_agent(browser)
|
134
|
-
Environ.platform = :mobile
|
135
|
-
Environ.device_type = Browsers.mobile_device_name(browser)
|
136
158
|
ENV['HOST_BROWSER'] ? host_browser = ENV['HOST_BROWSER'].downcase.to_sym : host_browser = :firefox
|
137
159
|
case host_browser
|
138
160
|
when :firefox
|
@@ -151,32 +173,38 @@ module TestCentricity
|
|
151
173
|
def self.initialize_browserstack
|
152
174
|
browser = ENV['BS_BROWSER']
|
153
175
|
|
176
|
+
if ENV['BS_REAL_MOBILE'] || ENV['BS_PLATFORM']
|
177
|
+
Environ.platform = :mobile
|
178
|
+
Environ.device = true
|
179
|
+
Environ.device_type = ENV['BS_DEVICE']
|
180
|
+
Environ.device_os = ENV['BS_OS']
|
181
|
+
Environ.device_orientation = ENV['ORIENTATION'] if ENV['ORIENTATION']
|
182
|
+
|
183
|
+
elsif ENV['BS_OS']
|
184
|
+
Environ.os = "#{ENV['BS_OS']} #{ENV['BS_OS_VERSION']}"
|
185
|
+
end
|
186
|
+
|
154
187
|
endpoint = "http://#{ENV['BS_USERNAME']}:#{ENV['BS_AUTHKEY']}@hub-cloud.browserstack.com/wd/hub"
|
155
188
|
Capybara.register_driver :browserstack do |app|
|
156
189
|
capabilities = Selenium::WebDriver::Remote::Capabilities.new
|
157
190
|
|
158
|
-
if ENV['
|
159
|
-
capabilities['
|
191
|
+
if ENV['BS_REAL_MOBILE']
|
192
|
+
capabilities['device'] = ENV['BS_DEVICE']
|
193
|
+
capabilities['realMobile'] = true
|
160
194
|
capabilities['os_version'] = ENV['BS_OS_VERSION']
|
161
|
-
|
162
|
-
capabilities['browser'] = browser || 'chrome'
|
163
|
-
capabilities['browser_version'] = ENV['BS_VERSION'] if ENV['BS_VERSION']
|
164
|
-
capabilities['resolution'] = ENV['RESOLUTION'] if ENV['RESOLUTION']
|
195
|
+
|
165
196
|
elsif ENV['BS_PLATFORM']
|
166
197
|
capabilities[:platform] = ENV['BS_PLATFORM']
|
167
198
|
capabilities[:browserName] = browser
|
168
199
|
capabilities['device'] = ENV['BS_DEVICE'] if ENV['BS_DEVICE']
|
169
|
-
Environ.platform = :mobile
|
170
|
-
Environ.device = true
|
171
|
-
Environ.device_type = ENV['BS_DEVICE']
|
172
|
-
Environ.device_orientation = ENV['ORIENTATION'] if ENV['ORIENTATION']
|
173
200
|
capabilities['deviceOrientation'] = ENV['ORIENTATION'] if ENV['ORIENTATION']
|
174
|
-
|
175
|
-
|
176
|
-
capabilities['
|
177
|
-
|
178
|
-
|
179
|
-
|
201
|
+
|
202
|
+
elsif ENV['BS_OS']
|
203
|
+
capabilities['os'] = ENV['BS_OS']
|
204
|
+
capabilities['os_version'] = ENV['BS_OS_VERSION']
|
205
|
+
capabilities['browser'] = browser || 'chrome'
|
206
|
+
capabilities['browser_version'] = ENV['BS_VERSION'] if ENV['BS_VERSION']
|
207
|
+
capabilities['resolution'] = ENV['RESOLUTION'] if ENV['RESOLUTION']
|
180
208
|
end
|
181
209
|
|
182
210
|
capabilities['browserstack.timezone'] = ENV['TIME_ZONE'] if ENV['TIME_ZONE']
|
@@ -222,6 +250,15 @@ module TestCentricity
|
|
222
250
|
def self.initialize_crossbrowser
|
223
251
|
browser = ENV['CB_BROWSER']
|
224
252
|
|
253
|
+
if ENV['CB_OS']
|
254
|
+
Environ.os = ENV['CB_OS']
|
255
|
+
Environ.platform = :desktop
|
256
|
+
elsif ENV['CB_PLATFORM']
|
257
|
+
Environ.device_type = ENV['CB_PLATFORM']
|
258
|
+
Environ.device = true
|
259
|
+
Environ.platform = :mobile
|
260
|
+
end
|
261
|
+
|
225
262
|
endpoint = "http://#{ENV['CB_USERNAME']}:#{ENV['CB_AUTHKEY']}@hub.crossbrowsertesting.com:80/wd/hub"
|
226
263
|
Capybara.register_driver :crossbrowser do |app|
|
227
264
|
capabilities = Selenium::WebDriver::Remote::Capabilities.new
|
@@ -234,9 +271,6 @@ module TestCentricity
|
|
234
271
|
Environ.platform = :desktop
|
235
272
|
elsif ENV['CB_PLATFORM']
|
236
273
|
capabilities['os_api_name'] = ENV['CB_PLATFORM']
|
237
|
-
Environ.device_type = ENV['CB_PLATFORM']
|
238
|
-
Environ.device = true
|
239
|
-
Environ.platform = :mobile
|
240
274
|
end
|
241
275
|
Capybara::Selenium::Driver.new(app, :browser => :remote, :url => endpoint, :desired_capabilities => capabilities)
|
242
276
|
end
|
@@ -284,6 +318,14 @@ module TestCentricity
|
|
284
318
|
def self.initialize_saucelabs
|
285
319
|
browser = ENV['SL_BROWSER']
|
286
320
|
|
321
|
+
if ENV['SL_OS']
|
322
|
+
Environ.platform = :desktop
|
323
|
+
Environ.os = ENV['SL_OS']
|
324
|
+
elsif ENV['SL_PLATFORM']
|
325
|
+
Environ.device_type = ENV['SL_DEVICE']
|
326
|
+
Environ.platform = :mobile
|
327
|
+
end
|
328
|
+
|
287
329
|
endpoint = "http://#{ENV['SL_USERNAME']}:#{ENV['SL_AUTHKEY']}@ondemand.saucelabs.com:80/wd/hub"
|
288
330
|
Capybara.register_driver :saucelabs do |app|
|
289
331
|
capabilities = Selenium::WebDriver::Remote::Capabilities.new
|
@@ -295,14 +337,11 @@ module TestCentricity
|
|
295
337
|
capabilities['recordVideo'] = ENV['RECORD_VIDEO'] if ENV['RECORD_VIDEO']
|
296
338
|
if ENV['SL_OS']
|
297
339
|
capabilities['platform'] = ENV['SL_OS']
|
298
|
-
Environ.platform = :desktop
|
299
340
|
elsif ENV['SL_PLATFORM']
|
300
341
|
capabilities['platform'] = ENV['SL_PLATFORM']
|
301
342
|
capabilities['deviceName'] = ENV['SL_DEVICE']
|
302
343
|
capabilities['deviceType'] = ENV['SL_DEVICE_TYPE'] if ENV['SL_DEVICE_TYPE']
|
303
344
|
capabilities['deviceOrientation'] = ENV['ORIENTATION'] if ENV['ORIENTATION']
|
304
|
-
Environ.device_type = ENV['SL_DEVICE']
|
305
|
-
Environ.platform = :mobile
|
306
345
|
end
|
307
346
|
|
308
347
|
Capybara::Selenium::Driver.new(app, :browser => :remote, :url => endpoint, :desired_capabilities => capabilities)
|
@@ -317,6 +356,19 @@ module TestCentricity
|
|
317
356
|
def self.initialize_testingbot
|
318
357
|
browser = ENV['TB_BROWSER']
|
319
358
|
|
359
|
+
Environ.os = ENV['TB_OS']
|
360
|
+
if ENV['TB_PLATFORM']
|
361
|
+
if ENV['ORIENTATION']
|
362
|
+
Environ.device_orientation = ENV['ORIENTATION']
|
363
|
+
end
|
364
|
+
Environ.device_os = ENV['TB_PLATFORM']
|
365
|
+
Environ.device_type = ENV['TB_DEVICE']
|
366
|
+
Environ.device = true
|
367
|
+
Environ.platform = :mobile
|
368
|
+
else
|
369
|
+
Environ.platform = :desktop
|
370
|
+
end
|
371
|
+
|
320
372
|
ENV['TUNNELING'] ?
|
321
373
|
endpoint = '@localhost:4445/wd/hub' :
|
322
374
|
endpoint = '@hub.testingbot.com:4444/wd/hub'
|
@@ -331,15 +383,11 @@ module TestCentricity
|
|
331
383
|
capabilities['platform'] = ENV['TB_OS']
|
332
384
|
capabilities['record_video'] = ENV['RECORD_VIDEO'] if ENV['RECORD_VIDEO']
|
333
385
|
if ENV['TB_PLATFORM']
|
334
|
-
|
335
|
-
|
386
|
+
if ENV['ORIENTATION']
|
387
|
+
capabilities['orientation'] = ENV['ORIENTATION']
|
388
|
+
end
|
336
389
|
capabilities['platformName'] = ENV['TB_PLATFORM']
|
337
390
|
capabilities['deviceName'] = ENV['TB_DEVICE']
|
338
|
-
Environ.device_type = ENV['TB_DEVICE']
|
339
|
-
Environ.device = true
|
340
|
-
Environ.platform = :mobile
|
341
|
-
else
|
342
|
-
Environ.platform = :desktop
|
343
391
|
end
|
344
392
|
|
345
393
|
Capybara::Selenium::Driver.new(app, :browser => :remote, :url => endpoint, :desired_capabilities => capabilities)
|
data/testcentricity_web.gemspec
CHANGED
@@ -15,9 +15,9 @@ Gem::Specification.new do |spec|
|
|
15
15
|
The TestCentricity™ Web core generic framework for desktop and mobile web site testing implements a Page Object Model DSL
|
16
16
|
for use with Cucumber, Capybara, and Selenium-Webdriver. The TestCentricity™ Web gem supports running automated tests
|
17
17
|
against locally hosted desktop browsers (Firefox, Chrome, Safari, or IE), locally hosted emulated mobile browsers (iOS,
|
18
|
-
Android, Windows Phone, Blackberry) running within Firefox or Chrome, a "headless" browser (using
|
19
|
-
mobile Safari browsers on iOS device simulators (using Appium and XCode on OS X), or cloud hosted
|
20
|
-
web browsers (using the BrowserStack, Sauce Labs, CrossBrowserTesting, or TestingBot services).}
|
18
|
+
Android, Windows Phone, Blackberry, Kindle Fire) running within an instance of Firefox or Chrome, a "headless" browser (using
|
19
|
+
Poltergeist and PhantomJS), mobile Safari browsers on iOS device simulators (using Appium and XCode on OS X), or cloud hosted
|
20
|
+
desktop or mobile web browsers (using the BrowserStack, Sauce Labs, CrossBrowserTesting, or TestingBot services).}
|
21
21
|
spec.homepage = ''
|
22
22
|
spec.license = 'BSD3'
|
23
23
|
|
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: 2.0
|
4
|
+
version: 2.1.0
|
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: 2017-
|
11
|
+
date: 2017-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -181,9 +181,9 @@ description: |2-
|
|
181
181
|
The TestCentricity™ Web core generic framework for desktop and mobile web site testing implements a Page Object Model DSL
|
182
182
|
for use with Cucumber, Capybara, and Selenium-Webdriver. The TestCentricity™ Web gem supports running automated tests
|
183
183
|
against locally hosted desktop browsers (Firefox, Chrome, Safari, or IE), locally hosted emulated mobile browsers (iOS,
|
184
|
-
Android, Windows Phone, Blackberry) running within Firefox or Chrome, a "headless" browser (using
|
185
|
-
mobile Safari browsers on iOS device simulators (using Appium and XCode on OS X), or cloud hosted
|
186
|
-
web browsers (using the BrowserStack, Sauce Labs, CrossBrowserTesting, or TestingBot services).
|
184
|
+
Android, Windows Phone, Blackberry, Kindle Fire) running within an instance of Firefox or Chrome, a "headless" browser (using
|
185
|
+
Poltergeist and PhantomJS), mobile Safari browsers on iOS device simulators (using Appium and XCode on OS X), or cloud hosted
|
186
|
+
desktop or mobile web browsers (using the BrowserStack, Sauce Labs, CrossBrowserTesting, or TestingBot services).
|
187
187
|
email:
|
188
188
|
- testcentricity@gmail.com
|
189
189
|
executables: []
|