testcentricity 2.3.19 → 2.4.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 +13 -0
- data/lib/testcentricity/app_core/appium_connect_helper.rb +85 -38
- data/lib/testcentricity/app_core/screen_sections_helper.rb +1 -3
- data/lib/testcentricity/app_elements/app_element_helper.rb +35 -17
- data/lib/testcentricity/app_elements/list.rb +47 -6
- data/lib/testcentricity/version.rb +1 -1
- data/lib/testcentricity/web_core/webdriver_helper.rb +13 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bec8539d0e9b7b3442baf37b6ad6dfa0127f1098
|
4
|
+
data.tar.gz: 92f2cbb4725151a936056835745029b93bf1e2be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a00a9c37aaeb50c688cc39be27f37e3505db5f410bab9595fd1b3f68aa6ed205febf1a402c2191f4ebb21d13bb3a2ac8ab109c676b6e0b87d690b9016014d5ee
|
7
|
+
data.tar.gz: f134665182d8ffa55f92cb699eb68ad1ff76245214f15f10eaf748ba96abb18f1dcf781b8cdc8ab9371bc26b5c66e968dfcdbbd5c9f2e18f3b05c930222a1cb8
|
data/README.md
CHANGED
@@ -28,6 +28,12 @@ hosted instances of Chrome, Firefox, Safari, and IE web browsers.
|
|
28
28
|
|
29
29
|
|
30
30
|
## What's New
|
31
|
+
###Version 2.4.0
|
32
|
+
|
33
|
+
* Updated `TestCentricity::WebDriverConnect.initialize_web_driver` method to read the `APP_FULL_RESET`, `APP_NO_RESET`, and `NEW_COMMAND_TIMEOUT` Environment
|
34
|
+
Variables and set the corresponding `fullReset`, `noReset`, and `newCommandTimeout` Appium capabilities for iOS and Android physical devices and simulators.
|
35
|
+
Also reads the `WDA_LOCAL_PORT` Environment Variable and sets the `wdaLocalPort` Appium capability for iOS physical devices only.
|
36
|
+
|
31
37
|
###Version 2.3.18
|
32
38
|
|
33
39
|
* Updated `SelectList.define_list_elements` method to accept value for `:list_trigger` element.
|
@@ -985,10 +991,13 @@ Once your test environment is properly configured, the following **Environment V
|
|
985
991
|
`APP_ALLOW_POPUPS` | [Optional] Allow javascript to open new windows in Safari. Set to `true` or `false`
|
986
992
|
`APP_IGNORE_FRAUD_WARNING` | [Optional] Prevent Safari from showing a fraudulent website warning. Set to `true` or `false`
|
987
993
|
`APP_NO_RESET` | [Optional] Don't reset app state after each test. Set to `true` or `false`
|
994
|
+
`APP_FULL_RESET` | [Optional] Perform a complete reset. Set to `true` or `false`
|
988
995
|
`APP_INITIAL_URL` | [Optional] Initial URL, default is a local welcome page. e.g. `http://www.apple.com`
|
996
|
+
`WDA_LOCAL_PORT` | [Optional] Used to forward traffic from Mac host to real iOS devices over USB. Default value is same as port number used by WDA on device.
|
989
997
|
`LOCALE` | [Optional] Locale to set for the simulator. e.g. `fr_CA`
|
990
998
|
`LANGUAGE` | [Optional] Language to set for the simulator. e.g. `fr`
|
991
999
|
`ORIENTATION` | [Optional] Set to `portrait` or `landscape` (only for iOS simulators)
|
1000
|
+
`NEW_COMMAND_TIMEOUT` | [Optional] Time (in Seconds) that Appium will wait for a new command from the client
|
992
1001
|
|
993
1002
|
|
994
1003
|
### Mobile Chrome or Android browsers on Android Studio Virtual Device emulators
|
@@ -1013,8 +1022,12 @@ Once your test environment is properly configured, the following **Environment V
|
|
1013
1022
|
`DEVICE_TYPE` | Must be set to `phone` or `tablet`
|
1014
1023
|
`ORIENTATION` | [Optional] Set to `portrait` or `landscape`
|
1015
1024
|
`APP_INITIAL_URL` | [Optional] Initial URL, default is a local welcome page. e.g. `http://www.apple.com`
|
1025
|
+
`APP_NO_RESET` | [Optional] Don't reset app state after each test. Set to `true` or `false`
|
1026
|
+
`APP_FULL_RESET` | [Optional] Perform a complete reset. Set to `true` or `false`
|
1016
1027
|
`LOCALE` | [Optional] Locale to set for the simulator. e.g. `fr_CA`
|
1017
1028
|
`LANGUAGE` | [Optional] Language to set for the simulator. e.g. `fr`
|
1029
|
+
`NEW_COMMAND_TIMEOUT` | [Optional] Time (in Seconds) that Appium will wait for a new command from the client
|
1030
|
+
`CHROMEDRIVER_EXECUTABLE` | [Optional] Absolute local path to webdriver executable
|
1018
1031
|
|
1019
1032
|
|
1020
1033
|
### Remotely hosted desktop and mobile web browsers
|
@@ -11,57 +11,97 @@ module TestCentricity
|
|
11
11
|
Environ.platform = :mobile
|
12
12
|
Environ.driver = :appium
|
13
13
|
Environ.device_type = ENV['DEVICE_TYPE'] if ENV['DEVICE_TYPE']
|
14
|
+
Environ.device_orientation = ENV['ORIENTATION'] if ENV['ORIENTATION']
|
14
15
|
|
15
16
|
@config_file = project_path
|
16
17
|
|
17
18
|
if project_path.nil?
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
browser = ENV['WEB_BROWSER']
|
20
|
+
case browser.downcase.to_sym
|
21
|
+
when :appium
|
22
|
+
Environ.device_name = ENV['APP_DEVICE']
|
23
|
+
Environ.device_os = ENV['APP_PLATFORM_NAME']
|
24
|
+
ENV['UDID'] ? Environ.device = :device : Environ.device = :simulator
|
25
|
+
when :browserstack
|
26
|
+
Environ.device_name = ENV['BS_DEVICE']
|
27
|
+
Environ.device_os = ENV['BS_OS']
|
28
|
+
end
|
22
29
|
end
|
23
30
|
@running = false
|
24
31
|
end
|
25
32
|
|
26
33
|
def self.start_driver
|
27
34
|
if @config_file.nil?
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
capabilities[:
|
46
|
-
capabilities[:
|
47
|
-
capabilities[:
|
48
|
-
capabilities[:
|
49
|
-
capabilities[:
|
50
|
-
capabilities[:
|
51
|
-
|
35
|
+
browser = ENV['WEB_BROWSER']
|
36
|
+
case browser.downcase.to_sym
|
37
|
+
when :appium
|
38
|
+
desired_capabilities = {
|
39
|
+
caps: {
|
40
|
+
platformName: ENV['APP_PLATFORM_NAME'],
|
41
|
+
platformVersion: ENV['APP_VERSION'],
|
42
|
+
deviceName: ENV['APP_DEVICE'],
|
43
|
+
automationName: ENV['AUTOMATION_ENGINE']
|
44
|
+
}
|
45
|
+
}
|
46
|
+
capabilities = desired_capabilities[:caps]
|
47
|
+
capabilities[:avd] = ENV['APP_DEVICE'] if ENV['APP_PLATFORM_NAME'].downcase.to_sym == :android
|
48
|
+
capabilities[:orientation] = ENV['ORIENTATION'].upcase if ENV['ORIENTATION']
|
49
|
+
capabilities[:language] = ENV['LANGUAGE'] if ENV['LANGUAGE']
|
50
|
+
capabilities[:locale] = ENV['LOCALE'].gsub('-', '_') if ENV['LOCALE']
|
51
|
+
capabilities[:newCommandTimeout] = ENV['NEW_COMMAND_TIMEOUT'] if ENV['NEW_COMMAND_TIMEOUT']
|
52
|
+
capabilities[:noReset] = ENV['APP_NO_RESET'] if ENV['APP_NO_RESET']
|
53
|
+
capabilities[:fullReset] = ENV['APP_FULL_RESET'] if ENV['APP_FULL_RESET']
|
54
|
+
capabilities[:webkitDebugProxyPort] = ENV['WEBKIT_DEBUG_PROXY_PORT'] if ENV['WEBKIT_DEBUG_PROXY_PORT']
|
55
|
+
capabilities[:webDriverAgentUrl] = ENV['WEBDRIVER_AGENT_URL'] if ENV['WEBDRIVER_AGENT_URL']
|
56
|
+
capabilities[:wdaLocalPort] = ENV['WDA_LOCAL_PORT'] if ENV['WDA_LOCAL_PORT']
|
57
|
+
capabilities[:usePrebuiltWDA] = ENV['USE_PREBUILT_WDA'] if ENV['USE_PREBUILT_WDA']
|
58
|
+
capabilities[:useNewWDA] = ENV['USE_NEW_WDA'] if ENV['USE_NEW_WDA']
|
59
|
+
capabilities[:startIWDP] = ENV['START_IWDP'] if ENV['START_IWDP']
|
60
|
+
capabilities[:autoWebview] = ENV['AUTO_WEBVIEW'] if ENV['AUTO_WEBVIEW']
|
61
|
+
capabilities[:chromedriverExecutable] = ENV['CHROMEDRIVER_EXECUTABLE'] if ENV['CHROMEDRIVER_EXECUTABLE']
|
62
|
+
capabilities[:autoWebviewTimeout] = ENV['AUTO_WEBVIEW_TIMEOUT'] if ENV['AUTO_WEBVIEW_TIMEOUT']
|
63
|
+
|
64
|
+
if ENV['UDID']
|
65
|
+
capabilities[:udid] = ENV['UDID']
|
66
|
+
capabilities[:bundleId] = ENV['BUNDLE_ID'] if ENV['BUNDLE_ID']
|
67
|
+
capabilities[:xcodeOrgId] = ENV['TEAM_ID'] if ENV['TEAM_ID']
|
68
|
+
capabilities[:xcodeSigningId] = ENV['TEAM_NAME'] if ENV['TEAM_NAME']
|
69
|
+
capabilities[:appActivity] = ENV['APP_ACTIVITY'] if ENV['APP_ACTIVITY']
|
70
|
+
capabilities[:appPackage] = ENV['APP_PACKAGE'] if ENV['APP_PACKAGE']
|
71
|
+
end
|
52
72
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
73
|
+
if ENV['APP']
|
74
|
+
capabilities[:app] = ENV['APP']
|
75
|
+
else
|
76
|
+
if Environ.is_android?
|
77
|
+
capabilities[:app] = Environ.current.android_apk_path
|
78
|
+
elsif Environ.is_ios?
|
79
|
+
Environ.is_device? ?
|
80
|
+
capabilities[:app] = Environ.current.ios_ipa_path :
|
81
|
+
capabilities[:app] = Environ.current.ios_app_path
|
82
|
+
end
|
62
83
|
end
|
84
|
+
when :browserstack
|
85
|
+
endpoint = "http://#{ENV['BS_USERNAME']}:#{ENV['BS_AUTHKEY']}@hub-cloud.browserstack.com/wd/hub"
|
86
|
+
|
87
|
+
capabilities = {}
|
88
|
+
capabilities['device'] = ENV['BS_DEVICE']
|
89
|
+
capabilities['os_version'] = ENV['BS_OS_VERSION']
|
90
|
+
capabilities['app'] = "bs://#{ENV['APP_ID']}"
|
91
|
+
capabilities['realMobile'] = true
|
92
|
+
capabilities['project'] = ENV['AUTOMATE_PROJECT'] if ENV['AUTOMATE_PROJECT']
|
93
|
+
capabilities['build'] = ENV['AUTOMATE_BUILD'] if ENV['AUTOMATE_BUILD']
|
94
|
+
capabilities['deviceOrientation'] = ENV['ORIENTATION'] if ENV['ORIENTATION']
|
95
|
+
capabilities['browserstack.debug'] = true
|
96
|
+
capabilities['browserstack.video'] = ENV['RECORD_VIDEO'] if ENV['RECORD_VIDEO']
|
97
|
+
capabilities['browserstack.debug'] = 'true'
|
98
|
+
|
99
|
+
appium_lib_options = { server_url: endpoint }
|
100
|
+
desired_capabilities = {
|
101
|
+
appium_lib: appium_lib_options,
|
102
|
+
caps: capabilities
|
103
|
+
}
|
63
104
|
end
|
64
|
-
|
65
105
|
else
|
66
106
|
base_path = 'config'
|
67
107
|
unless File.directory?(File.join(@config_file, base_path))
|
@@ -70,9 +110,13 @@ module TestCentricity
|
|
70
110
|
appium_caps = File.join(@config_file, base_path, 'appium.txt')
|
71
111
|
desired_capabilities = Appium.load_appium_txt file: appium_caps
|
72
112
|
end
|
113
|
+
|
114
|
+
puts "Appium desired_capabilities = #{desired_capabilities}" if ENV['DEBUG']
|
115
|
+
|
73
116
|
Appium::Driver.new(desired_capabilities).start_driver
|
74
117
|
@running = true
|
75
118
|
Appium.promote_appium_methods TestCentricity::ScreenObject
|
119
|
+
Appium.promote_appium_methods TestCentricity::ScreenSection
|
76
120
|
Appium.promote_appium_methods TestCentricity::AppUIElement
|
77
121
|
|
78
122
|
Environ.screen_size = $driver.window_size
|
@@ -152,6 +196,7 @@ module TestCentricity
|
|
152
196
|
|
153
197
|
def self.default_context
|
154
198
|
$driver.switch_to_default_context
|
199
|
+
puts "Current context = #{$driver.current_context}" if ENV['DEBUG']
|
155
200
|
end
|
156
201
|
|
157
202
|
def self.is_webview?
|
@@ -164,7 +209,9 @@ module TestCentricity
|
|
164
209
|
|
165
210
|
def self.webview_context
|
166
211
|
contexts = available_contexts
|
212
|
+
puts "Contexts = #{contexts}" if ENV['DEBUG']
|
167
213
|
set_context(contexts.last)
|
214
|
+
puts "Current context = #{$driver.current_context}" if ENV['DEBUG']
|
168
215
|
end
|
169
216
|
end
|
170
217
|
end
|
@@ -361,7 +361,6 @@ module TestCentricity
|
|
361
361
|
end
|
362
362
|
|
363
363
|
|
364
|
-
|
365
364
|
def width
|
366
365
|
section = find_section
|
367
366
|
section_not_found_exception(section)
|
@@ -379,6 +378,7 @@ module TestCentricity
|
|
379
378
|
section_not_found_exception(section)
|
380
379
|
section.location.x
|
381
380
|
end
|
381
|
+
|
382
382
|
def y_loc
|
383
383
|
section = find_section
|
384
384
|
section_not_found_exception(section)
|
@@ -386,8 +386,6 @@ module TestCentricity
|
|
386
386
|
end
|
387
387
|
|
388
388
|
|
389
|
-
|
390
|
-
|
391
389
|
def verify_ui_states(ui_states)
|
392
390
|
ui_states.each do |ui_object, object_states|
|
393
391
|
object_states.each do |property, state|
|
@@ -35,19 +35,15 @@ module TestCentricity
|
|
35
35
|
def tap
|
36
36
|
obj = element
|
37
37
|
object_not_found_exception(obj)
|
38
|
-
|
39
|
-
|
40
|
-
tap_action = Appium::TouchAction.new.tap(element: obj, x: x, y: y)
|
41
|
-
tap_action.perform
|
38
|
+
actions = Appium::TouchAction.new
|
39
|
+
actions.tap(element: obj).perform
|
42
40
|
end
|
43
41
|
|
44
42
|
def double_tap
|
45
43
|
obj = element
|
46
44
|
object_not_found_exception(obj)
|
47
|
-
|
48
|
-
|
49
|
-
tap_action = Appium::TouchAction.new.double_tap(element: obj, x: x, y: y)
|
50
|
-
tap_action.perform
|
45
|
+
actions = Appium::TouchAction.new
|
46
|
+
actions.double_tap(element: obj).perform
|
51
47
|
end
|
52
48
|
|
53
49
|
def set(value)
|
@@ -301,21 +297,44 @@ module TestCentricity
|
|
301
297
|
def scroll(direction)
|
302
298
|
obj = element
|
303
299
|
object_not_found_exception(obj)
|
304
|
-
|
300
|
+
if Environ.device_os == :ios
|
301
|
+
execute_script('mobile: scroll', direction: direction.to_s, element: obj)
|
302
|
+
else
|
303
|
+
case direction
|
304
|
+
when :down
|
305
|
+
x = obj.size.width.to_i / 2
|
306
|
+
bottom = obj.size.height
|
307
|
+
bottom = window_size[:height].to_i if bottom > window_size[:height]
|
308
|
+
start_pt = [x, bottom]
|
309
|
+
delta_pt = [0, 0 - (bottom - 20)]
|
310
|
+
|
311
|
+
when :up
|
312
|
+
x = obj.size.width.to_i / 2
|
313
|
+
top = obj.location.y - (obj.size.height / 2)
|
314
|
+
top = 0 if top < 0
|
315
|
+
start_pt = [x, top]
|
316
|
+
delta_pt = [0, obj.size.height / 2]
|
317
|
+
end
|
318
|
+
puts "Swipe start_pt = #{start_pt} / delta_pt = #{delta_pt}" if ENV['DEBUG']
|
319
|
+
Appium::TouchAction.new.swipe(start_x: start_pt[0], start_y: start_pt[1], delta_x: delta_pt[0], delta_y: delta_pt[1]).perform
|
320
|
+
end
|
305
321
|
end
|
306
322
|
|
307
323
|
def swipe(direction)
|
308
|
-
|
324
|
+
obj = element
|
325
|
+
object_not_found_exception(obj)
|
326
|
+
if Environ.device_os == :ios
|
327
|
+
execute_script('mobile: swipe', direction: direction.to_s, element: obj)
|
328
|
+
else
|
329
|
+
actions = Appium::TouchAction.new
|
330
|
+
actions.scroll(element: obj).perform
|
331
|
+
end
|
309
332
|
end
|
310
333
|
|
311
|
-
|
312
334
|
private
|
313
335
|
|
314
336
|
def element
|
315
|
-
|
316
|
-
parent_section ? tries ||= 2 : tries ||= 1
|
317
|
-
|
318
|
-
if parent_section && tries > 1
|
337
|
+
if @context == :section
|
319
338
|
parent_obj = nil
|
320
339
|
locators = @parent.get_locator
|
321
340
|
locators.each do |parent_locator|
|
@@ -335,8 +354,7 @@ module TestCentricity
|
|
335
354
|
obj
|
336
355
|
end
|
337
356
|
rescue
|
338
|
-
puts "Did not find
|
339
|
-
retry if (tries -= 1) > 0
|
357
|
+
puts "Did not find object '#{@name}' - #{@locator}" if ENV['DEBUG']
|
340
358
|
nil
|
341
359
|
end
|
342
360
|
|
@@ -1,23 +1,51 @@
|
|
1
1
|
module TestCentricity
|
2
2
|
class AppList < AppUIElement
|
3
|
+
attr_accessor :list_item
|
4
|
+
|
3
5
|
def initialize(name, parent, locator, context)
|
4
6
|
super
|
5
|
-
@type
|
7
|
+
@type = :list
|
8
|
+
@list_item = nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def define_list_elements(element_spec)
|
12
|
+
element_spec.each do |element, value|
|
13
|
+
case element
|
14
|
+
when :list_item
|
15
|
+
@list_item = value
|
16
|
+
else
|
17
|
+
raise "#{element} is not a recognized list element"
|
18
|
+
end
|
19
|
+
end
|
6
20
|
end
|
7
21
|
|
8
22
|
def get_item_count
|
9
23
|
obj = element
|
10
24
|
object_not_found_exception(obj)
|
11
|
-
|
12
|
-
|
13
|
-
else
|
14
|
-
items = obj.find_elements(:class, 'android.widget.FrameLayout')
|
15
|
-
end
|
25
|
+
list_loc = get_list_item_locator
|
26
|
+
items = obj.find_elements(list_loc.keys[0], list_loc.values[0])
|
16
27
|
items.size
|
17
28
|
end
|
18
29
|
|
19
30
|
def get_list_items
|
31
|
+
list_items = []
|
32
|
+
obj = element
|
33
|
+
object_not_found_exception(obj)
|
34
|
+
list_loc = get_list_item_locator
|
35
|
+
items = obj.find_elements(list_loc.keys[0], list_loc.values[0])
|
36
|
+
items.each do |item|
|
37
|
+
list_items.push(item.text)
|
38
|
+
end
|
39
|
+
list_items
|
40
|
+
end
|
20
41
|
|
42
|
+
def click_list_item(index)
|
43
|
+
obj = element
|
44
|
+
object_not_found_exception(obj)
|
45
|
+
list_loc = get_list_item_locator
|
46
|
+
items = obj.find_elements(list_loc.keys[0], list_loc.values[0])
|
47
|
+
list_item = items[index]
|
48
|
+
list_item.click
|
21
49
|
end
|
22
50
|
|
23
51
|
def get_list_item(index)
|
@@ -50,5 +78,18 @@ module TestCentricity
|
|
50
78
|
rescue
|
51
79
|
raise "Value of List #{object_ref_message} failed to change from '#{value}' after #{timeout} seconds" if get_item_count == value
|
52
80
|
end
|
81
|
+
|
82
|
+
private
|
83
|
+
|
84
|
+
def get_list_item_locator
|
85
|
+
if @list_item.nil?
|
86
|
+
if Environ.device_os == :ios
|
87
|
+
define_list_elements({ :list_item => { class: 'XCUIElementTypeCell' } } )
|
88
|
+
else
|
89
|
+
define_list_elements({ :list_item => { class: 'android.widget.FrameLayout' } } )
|
90
|
+
end
|
91
|
+
end
|
92
|
+
@list_item
|
93
|
+
end
|
53
94
|
end
|
54
95
|
end
|
@@ -192,12 +192,21 @@ module TestCentricity
|
|
192
192
|
else
|
193
193
|
Environ.device = :simulator
|
194
194
|
end
|
195
|
-
desired_capabilities[:safariInitialUrl] = ENV['APP_INITIAL_URL'] if ENV['APP_INITIAL_URL']
|
196
|
-
desired_capabilities[:safariAllowPopups] = ENV['APP_ALLOW_POPUPS'] if ENV['APP_ALLOW_POPUPS']
|
197
195
|
desired_capabilities[:safariIgnoreFraudWarning] = ENV['APP_IGNORE_FRAUD_WARNING'] if ENV['APP_IGNORE_FRAUD_WARNING']
|
198
|
-
desired_capabilities[:
|
196
|
+
desired_capabilities[:safariInitialUrl] = ENV['APP_INITIAL_URL'] if ENV['APP_INITIAL_URL']
|
197
|
+
desired_capabilities[:safariAllowPopups] = ENV['APP_ALLOW_POPUPS'] if ENV['APP_ALLOW_POPUPS']
|
198
|
+
desired_capabilities[:newCommandTimeout] = ENV['NEW_COMMAND_TIMEOUT'] if ENV['NEW_COMMAND_TIMEOUT']
|
199
|
+
desired_capabilities[:noReset] = ENV['APP_NO_RESET'] if ENV['APP_NO_RESET']
|
200
|
+
desired_capabilities[:fullReset] = ENV['APP_FULL_RESET'] if ENV['APP_FULL_RESET']
|
201
|
+
desired_capabilities[:webkitDebugProxyPort] = ENV['WEBKIT_DEBUG_PROXY_PORT'] if ENV['WEBKIT_DEBUG_PROXY_PORT']
|
202
|
+
desired_capabilities[:webDriverAgentUrl] = ENV['WEBDRIVER_AGENT_URL'] if ENV['WEBDRIVER_AGENT_URL']
|
203
|
+
desired_capabilities[:wdaLocalPort] = ENV['WDA_LOCAL_PORT'] if ENV['WDA_LOCAL_PORT']
|
204
|
+
desired_capabilities[:usePrebuiltWDA] = ENV['USE_PREBUILT_WDA'] if ENV['USE_PREBUILT_WDA']
|
205
|
+
desired_capabilities[:useNewWDA] = ENV['USE_NEW_WDA'] if ENV['USE_NEW_WDA']
|
206
|
+
desired_capabilities[:chromedriverExecutable] = ENV['CHROMEDRIVER_EXECUTABLE'] if ENV['CHROMEDRIVER_EXECUTABLE']
|
207
|
+
|
199
208
|
desired_capabilities[:language] = ENV['LANGUAGE'] if ENV['LANGUAGE']
|
200
|
-
desired_capabilities[:locale]
|
209
|
+
desired_capabilities[:locale] = ENV['LOCALE'].gsub('-', '_') if ENV['LOCALE']
|
201
210
|
|
202
211
|
Capybara.register_driver :appium do |app|
|
203
212
|
appium_lib_options = { server_url: endpoint }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testcentricity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.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: 2018-03-
|
11
|
+
date: 2018-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|