oxygen-cli 1.22.0 → 1.99.0-alpha.0
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.
- package/CHANGELOG.md +0 -50
- package/build/core/OxygenCore.js +56 -145
- package/build/errors/OxygenError.js +5 -15
- package/build/errors/helper.js +45 -49
- package/build/index.js +14 -6
- package/build/lib/cli-util.js +19 -19
- package/build/lib/cli.js +4 -2
- package/build/lib/parallel-launcher.js +333 -0
- package/build/lib/param-manager.js +66 -47
- package/build/lib/util.js +38 -9
- package/build/ox_modules/index.js +1 -97
- package/build/ox_modules/module-assert.js +19 -9
- package/build/ox_modules/module-dns.js +220 -0
- package/build/ox_modules/module-http.js +39 -51
- package/build/ox_modules/module-shell.js +19 -75
- package/build/ox_modules/module-utils.js +1 -108
- package/build/ox_modules/utils.js +1 -357
- package/build/reporter/FileReporterBase.js +5 -5
- package/build/reporter/ReportAggregator.js +127 -4
- package/build/runners/WorkerProcess.js +15 -28
- package/build/runners/index.js +2 -6
- package/build/runners/oxygen/OxygenWorker.js +8 -8
- package/build/runners/oxygen/index.js +17 -18
- package/build/runners/oxygen/worker.js +10 -8
- package/package.json +12 -46
- package/build/lib/img-merge.js +0 -163
- package/build/ox_modules/module-db.js +0 -146
- package/build/ox_modules/module-email.js +0 -212
- package/build/ox_modules/module-eyes.js +0 -189
- package/build/ox_modules/module-mailinator.js +0 -207
- package/build/ox_modules/module-mob/commands/alertAccept.js +0 -35
- package/build/ox_modules/module-mob/commands/alertDismiss.js +0 -35
- package/build/ox_modules/module-mob/commands/assertAlert.js +0 -56
- package/build/ox_modules/module-mob/commands/assertText.js +0 -45
- package/build/ox_modules/module-mob/commands/assertTitle.js +0 -43
- package/build/ox_modules/module-mob/commands/assertValue.js +0 -66
- package/build/ox_modules/module-mob/commands/back.js +0 -27
- package/build/ox_modules/module-mob/commands/clear.js +0 -40
- package/build/ox_modules/module-mob/commands/click.js +0 -35
- package/build/ox_modules/module-mob/commands/clickHidden.js +0 -52
- package/build/ox_modules/module-mob/commands/clickLong.js +0 -34
- package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +0 -37
- package/build/ox_modules/module-mob/commands/closeApp.js +0 -27
- package/build/ox_modules/module-mob/commands/debug.js +0 -26
- package/build/ox_modules/module-mob/commands/dragAndDrop.js +0 -38
- package/build/ox_modules/module-mob/commands/enableNetwork.js +0 -75
- package/build/ox_modules/module-mob/commands/execute.js +0 -32
- package/build/ox_modules/module-mob/commands/findElement.js +0 -36
- package/build/ox_modules/module-mob/commands/findElements.js +0 -39
- package/build/ox_modules/module-mob/commands/getAlertText.js +0 -31
- package/build/ox_modules/module-mob/commands/getAppiumLogs.js +0 -26
- package/build/ox_modules/module-mob/commands/getBrowserLogs.js +0 -66
- package/build/ox_modules/module-mob/commands/getCurrentActivity.js +0 -26
- package/build/ox_modules/module-mob/commands/getCurrentPackage.js +0 -26
- package/build/ox_modules/module-mob/commands/getDeviceLogs.js +0 -57
- package/build/ox_modules/module-mob/commands/getDeviceTime.js +0 -27
- package/build/ox_modules/module-mob/commands/getLocation.js +0 -32
- package/build/ox_modules/module-mob/commands/getSource.js +0 -26
- package/build/ox_modules/module-mob/commands/getText.js +0 -36
- package/build/ox_modules/module-mob/commands/getTitle.js +0 -24
- package/build/ox_modules/module-mob/commands/getUrl.js +0 -28
- package/build/ox_modules/module-mob/commands/getValue.js +0 -50
- package/build/ox_modules/module-mob/commands/getWindowHandles.js +0 -27
- package/build/ox_modules/module-mob/commands/hideKeyboard.js +0 -33
- package/build/ox_modules/module-mob/commands/index.js +0 -594
- package/build/ox_modules/module-mob/commands/installApp.js +0 -28
- package/build/ox_modules/module-mob/commands/isAppInstalled.js +0 -28
- package/build/ox_modules/module-mob/commands/isCheckable.js +0 -31
- package/build/ox_modules/module-mob/commands/isChecked.js +0 -31
- package/build/ox_modules/module-mob/commands/isClickable.js +0 -31
- package/build/ox_modules/module-mob/commands/isExist.js +0 -36
- package/build/ox_modules/module-mob/commands/isSelected.js +0 -36
- package/build/ox_modules/module-mob/commands/isVisible.js +0 -36
- package/build/ox_modules/module-mob/commands/isWebViewContext.js +0 -27
- package/build/ox_modules/module-mob/commands/launchApp.js +0 -26
- package/build/ox_modules/module-mob/commands/longPressKeyCode.js +0 -30
- package/build/ox_modules/module-mob/commands/open.js +0 -43
- package/build/ox_modules/module-mob/commands/pause.js +0 -27
- package/build/ox_modules/module-mob/commands/removeApp.js +0 -28
- package/build/ox_modules/module-mob/commands/resetApp.js +0 -26
- package/build/ox_modules/module-mob/commands/scrollIntoElement.js +0 -86
- package/build/ox_modules/module-mob/commands/scrollIntoView.js +0 -40
- package/build/ox_modules/module-mob/commands/select.js +0 -54
- package/build/ox_modules/module-mob/commands/selectFrame.js +0 -53
- package/build/ox_modules/module-mob/commands/selectWindow.js +0 -149
- package/build/ox_modules/module-mob/commands/sendKeys.js +0 -84
- package/build/ox_modules/module-mob/commands/setContext.js +0 -28
- package/build/ox_modules/module-mob/commands/setNativeContext.js +0 -26
- package/build/ox_modules/module-mob/commands/setTimeout.js +0 -33
- package/build/ox_modules/module-mob/commands/setWebViewContext.js +0 -39
- package/build/ox_modules/module-mob/commands/shake.js +0 -27
- package/build/ox_modules/module-mob/commands/smsClickLink.js +0 -32
- package/build/ox_modules/module-mob/commands/smsGetText.js +0 -45
- package/build/ox_modules/module-mob/commands/swipe.js +0 -58
- package/build/ox_modules/module-mob/commands/swipeElement.js +0 -58
- package/build/ox_modules/module-mob/commands/swipeScreen.js +0 -56
- package/build/ox_modules/module-mob/commands/takeScreenshot.js +0 -27
- package/build/ox_modules/module-mob/commands/tap.js +0 -34
- package/build/ox_modules/module-mob/commands/type.js +0 -67
- package/build/ox_modules/module-mob/commands/unlockPattern.js +0 -92
- package/build/ox_modules/module-mob/commands/waitForExist.js +0 -29
- package/build/ox_modules/module-mob/commands/waitForInteractable.js +0 -42
- package/build/ox_modules/module-mob/commands/waitForVisible.js +0 -28
- package/build/ox_modules/module-mob.js +0 -699
- package/build/ox_modules/module-pdf.js +0 -328
- package/build/ox_modules/module-proxy.js +0 -324
- package/build/ox_modules/module-serial.js +0 -187
- package/build/ox_modules/module-soap.js +0 -260
- package/build/ox_modules/module-twilio.js +0 -192
- package/build/ox_modules/module-web/commands/alertAccept.js +0 -35
- package/build/ox_modules/module-web/commands/alertDismiss.js +0 -35
- package/build/ox_modules/module-web/commands/assertAlert.js +0 -55
- package/build/ox_modules/module-web/commands/assertExist.js +0 -28
- package/build/ox_modules/module-web/commands/assertSelectedLabel.js +0 -51
- package/build/ox_modules/module-web/commands/assertSelectedValue.js +0 -45
- package/build/ox_modules/module-web/commands/assertText.js +0 -45
- package/build/ox_modules/module-web/commands/assertTextNotPresent.js +0 -56
- package/build/ox_modules/module-web/commands/assertTextPresent.js +0 -52
- package/build/ox_modules/module-web/commands/assertTitle.js +0 -42
- package/build/ox_modules/module-web/commands/assertValue.js +0 -44
- package/build/ox_modules/module-web/commands/back.js +0 -27
- package/build/ox_modules/module-web/commands/clear.js +0 -41
- package/build/ox_modules/module-web/commands/click.js +0 -112
- package/build/ox_modules/module-web/commands/clickHidden.js +0 -79
- package/build/ox_modules/module-web/commands/closeWindow.js +0 -25
- package/build/ox_modules/module-web/commands/debug.js +0 -25
- package/build/ox_modules/module-web/commands/deleteCookies.js +0 -22
- package/build/ox_modules/module-web/commands/deselect.js +0 -34
- package/build/ox_modules/module-web/commands/doubleClick.js +0 -65
- package/build/ox_modules/module-web/commands/dragAndDrop.js +0 -36
- package/build/ox_modules/module-web/commands/execute.js +0 -36
- package/build/ox_modules/module-web/commands/fileBrowse.js +0 -72
- package/build/ox_modules/module-web/commands/findElement.js +0 -35
- package/build/ox_modules/module-web/commands/findElements.js +0 -38
- package/build/ox_modules/module-web/commands/fullscreenWindow.js +0 -24
- package/build/ox_modules/module-web/commands/getAlertText.js +0 -30
- package/build/ox_modules/module-web/commands/getAttribute.js +0 -38
- package/build/ox_modules/module-web/commands/getBrowserLogs.js +0 -34
- package/build/ox_modules/module-web/commands/getCookies.js +0 -23
- package/build/ox_modules/module-web/commands/getCssValue.js +0 -38
- package/build/ox_modules/module-web/commands/getElementCount.js +0 -29
- package/build/ox_modules/module-web/commands/getHTML.js +0 -30
- package/build/ox_modules/module-web/commands/getSource.js +0 -26
- package/build/ox_modules/module-web/commands/getText.js +0 -36
- package/build/ox_modules/module-web/commands/getTitle.js +0 -22
- package/build/ox_modules/module-web/commands/getUrl.js +0 -26
- package/build/ox_modules/module-web/commands/getValue.js +0 -43
- package/build/ox_modules/module-web/commands/getWindowHandles.js +0 -26
- package/build/ox_modules/module-web/commands/getWindowSize.js +0 -26
- package/build/ox_modules/module-web/commands/getXMLPageSource.js +0 -51
- package/build/ox_modules/module-web/commands/index.js +0 -634
- package/build/ox_modules/module-web/commands/isAlertPresent.js +0 -31
- package/build/ox_modules/module-web/commands/isChecked.js +0 -30
- package/build/ox_modules/module-web/commands/isExist.js +0 -36
- package/build/ox_modules/module-web/commands/isSelected.js +0 -35
- package/build/ox_modules/module-web/commands/isVisible.js +0 -36
- package/build/ox_modules/module-web/commands/makeVisible.js +0 -74
- package/build/ox_modules/module-web/commands/maximizeWindow.js +0 -24
- package/build/ox_modules/module-web/commands/minimizeWindow.js +0 -24
- package/build/ox_modules/module-web/commands/newWindow.js +0 -27
- package/build/ox_modules/module-web/commands/open.js +0 -42
- package/build/ox_modules/module-web/commands/pause.js +0 -26
- package/build/ox_modules/module-web/commands/point.js +0 -37
- package/build/ox_modules/module-web/commands/pointJS.js +0 -56
- package/build/ox_modules/module-web/commands/refresh.js +0 -26
- package/build/ox_modules/module-web/commands/rightClick.js +0 -61
- package/build/ox_modules/module-web/commands/rightClickActions.js +0 -57
- package/build/ox_modules/module-web/commands/scrollToElement.js +0 -33
- package/build/ox_modules/module-web/commands/select.js +0 -55
- package/build/ox_modules/module-web/commands/selectFrame.js +0 -52
- package/build/ox_modules/module-web/commands/selectWindow.js +0 -148
- package/build/ox_modules/module-web/commands/sendKeys.js +0 -56
- package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +0 -33
- package/build/ox_modules/module-web/commands/setTimeout.js +0 -33
- package/build/ox_modules/module-web/commands/setWindowSize.js +0 -29
- package/build/ox_modules/module-web/commands/takeScreenshot.js +0 -37
- package/build/ox_modules/module-web/commands/type.js +0 -52
- package/build/ox_modules/module-web/commands/waitForAngular.js +0 -83
- package/build/ox_modules/module-web/commands/waitForExist.js +0 -28
- package/build/ox_modules/module-web/commands/waitForInteractable.js +0 -31
- package/build/ox_modules/module-web/commands/waitForNotExist.js +0 -57
- package/build/ox_modules/module-web/commands/waitForNotText.js +0 -45
- package/build/ox_modules/module-web/commands/waitForNotValue.js +0 -45
- package/build/ox_modules/module-web/commands/waitForText.js +0 -45
- package/build/ox_modules/module-web/commands/waitForValue.js +0 -45
- package/build/ox_modules/module-web/commands/waitForVisible.js +0 -28
- package/build/ox_modules/module-web/commands/waitForWindow.js +0 -118
- package/build/ox_modules/module-web.js +0 -909
- package/build/ox_modules/module-win/commands/assertText.js +0 -41
- package/build/ox_modules/module-win/commands/assertTitle.js +0 -38
- package/build/ox_modules/module-win/commands/assertValue.js +0 -62
- package/build/ox_modules/module-win/commands/back.js +0 -21
- package/build/ox_modules/module-win/commands/clear.js +0 -34
- package/build/ox_modules/module-win/commands/click.js +0 -25
- package/build/ox_modules/module-win/commands/clickLong.js +0 -30
- package/build/ox_modules/module-win/commands/clickMultipleTimes.js +0 -33
- package/build/ox_modules/module-win/commands/findElement.js +0 -31
- package/build/ox_modules/module-win/commands/findElements.js +0 -31
- package/build/ox_modules/module-win/commands/getAppiumLogs.js +0 -22
- package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +0 -25
- package/build/ox_modules/module-win/commands/getLocation.js +0 -26
- package/build/ox_modules/module-win/commands/getSource.js +0 -22
- package/build/ox_modules/module-win/commands/getText.js +0 -32
- package/build/ox_modules/module-win/commands/getValue.js +0 -46
- package/build/ox_modules/module-win/commands/getWindowHandles.js +0 -25
- package/build/ox_modules/module-win/commands/index.js +0 -298
- package/build/ox_modules/module-win/commands/isCheckable.js +0 -26
- package/build/ox_modules/module-win/commands/isChecked.js +0 -26
- package/build/ox_modules/module-win/commands/isClickable.js +0 -26
- package/build/ox_modules/module-win/commands/isExist.js +0 -32
- package/build/ox_modules/module-win/commands/isSelected.js +0 -26
- package/build/ox_modules/module-win/commands/isVisible.js +0 -32
- package/build/ox_modules/module-win/commands/open.js +0 -24
- package/build/ox_modules/module-win/commands/pause.js +0 -23
- package/build/ox_modules/module-win/commands/rightClick.js +0 -30
- package/build/ox_modules/module-win/commands/selectWindow.js +0 -97
- package/build/ox_modules/module-win/commands/sendKeys.js +0 -50
- package/build/ox_modules/module-win/commands/setTimeout.js +0 -29
- package/build/ox_modules/module-win/commands/takeScreenshot.js +0 -26
- package/build/ox_modules/module-win/commands/tap.js +0 -29
- package/build/ox_modules/module-win/commands/type.js +0 -38
- package/build/ox_modules/module-win/commands/waitForExist.js +0 -25
- package/build/ox_modules/module-win/commands/waitForInteractable.js +0 -43
- package/build/ox_modules/module-win/commands/waitForVisible.js +0 -24
- package/build/ox_modules/module-win.js +0 -367
- package/build/ox_services/service-devtools/submodule-network.js +0 -338
- package/build/ox_services/service-devtools.js +0 -83
- package/build/runners/cucumber/CucumberEventListener.js +0 -181
- package/build/runners/cucumber/CucumberReporter.js +0 -277
- package/build/runners/cucumber/CucumberWorker.js +0 -337
- package/build/runners/cucumber/index.js +0 -159
- package/build/runners/cucumber/worker.js +0 -184
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("source-map-support/register");
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU General Public License as published by
|
|
10
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
* (at your option) any later version.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @summary Selects an option from a drop-down list using an option locator. This command works
|
|
16
|
-
* with multiple-choice lists as well.
|
|
17
|
-
* @description Option locator can be one of the following (No prefix is same as label matching):
|
|
18
|
-
* - `label=STRING` - Matches option based on the visible text.
|
|
19
|
-
* - `value=STRING` - Matches option based on its value.
|
|
20
|
-
* - `index=STRING` - Matches option based on its index. The index is 0-based.
|
|
21
|
-
* @function select
|
|
22
|
-
* @param {String} selectLocator - An element locator identifying a drop-down menu.
|
|
23
|
-
* @param {String} optionLocator - An option locator.
|
|
24
|
-
* @param {Number=} timeout - Timeout in milliseconds. Default is 60 seconds.
|
|
25
|
-
* @for hybrid, web
|
|
26
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
27
|
-
* mob.init(); //Starts a mobile session
|
|
28
|
-
* mob.open("www.yourwebsite.com");// Opens a website.
|
|
29
|
-
* mob.select("id=Selection","label=United States");// Selects an option from a list.
|
|
30
|
-
*/
|
|
31
|
-
module.exports = async function (selectLocator, optionLocator, timeout) {
|
|
32
|
-
this.helpers.assertArgumentNonEmptyString(optionLocator, 'optionLocator');
|
|
33
|
-
this.helpers.assertArgumentTimeout(timeout, 'timeout');
|
|
34
|
-
var el = await this.helpers.getElement(selectLocator, false, timeout);
|
|
35
|
-
|
|
36
|
-
try {
|
|
37
|
-
if (optionLocator.indexOf('value=') === 0) {
|
|
38
|
-
await el.selectByAttribute('value', optionLocator.substring('value='.length));
|
|
39
|
-
} else if (optionLocator.indexOf('index=') === 0) {
|
|
40
|
-
await el.selectByIndex(optionLocator.substring('index='.length));
|
|
41
|
-
} else if (optionLocator.indexOf('label=') === 0) {
|
|
42
|
-
await el.selectByVisibleText(optionLocator.substring('label='.length));
|
|
43
|
-
} else {
|
|
44
|
-
await el.selectByVisibleText(optionLocator);
|
|
45
|
-
}
|
|
46
|
-
} catch (e) {
|
|
47
|
-
if (e.message && e.message.startsWith('Option with ')) {
|
|
48
|
-
throw new this.OxError(this.errHelper.errorCode.OPTION_NOT_FOUND, e.message);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
throw e;
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc2VsZWN0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJzZWxlY3RMb2NhdG9yIiwib3B0aW9uTG9jYXRvciIsInRpbWVvdXQiLCJoZWxwZXJzIiwiYXNzZXJ0QXJndW1lbnROb25FbXB0eVN0cmluZyIsImFzc2VydEFyZ3VtZW50VGltZW91dCIsImVsIiwiZ2V0RWxlbWVudCIsImluZGV4T2YiLCJzZWxlY3RCeUF0dHJpYnV0ZSIsInN1YnN0cmluZyIsImxlbmd0aCIsInNlbGVjdEJ5SW5kZXgiLCJzZWxlY3RCeVZpc2libGVUZXh0IiwiZSIsIm1lc3NhZ2UiLCJzdGFydHNXaXRoIiwiT3hFcnJvciIsImVyckhlbHBlciIsImVycm9yQ29kZSIsIk9QVElPTl9OT1RfRk9VTkQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLGdCQUFlQyxhQUFmLEVBQThCQyxhQUE5QixFQUE2Q0MsT0FBN0MsRUFBc0Q7QUFDbkUsT0FBS0MsT0FBTCxDQUFhQyw0QkFBYixDQUEwQ0gsYUFBMUMsRUFBeUQsZUFBekQ7QUFDQSxPQUFLRSxPQUFMLENBQWFFLHFCQUFiLENBQW1DSCxPQUFuQyxFQUE0QyxTQUE1QztBQUVBLE1BQUlJLEVBQUUsR0FBRyxNQUFNLEtBQUtILE9BQUwsQ0FBYUksVUFBYixDQUF3QlAsYUFBeEIsRUFBdUMsS0FBdkMsRUFBOENFLE9BQTlDLENBQWY7O0FBRUEsTUFBSTtBQUNBLFFBQUlELGFBQWEsQ0FBQ08sT0FBZCxDQUFzQixRQUF0QixNQUFvQyxDQUF4QyxFQUEyQztBQUN2QyxZQUFNRixFQUFFLENBQUNHLGlCQUFILENBQXFCLE9BQXJCLEVBQThCUixhQUFhLENBQUNTLFNBQWQsQ0FBd0IsU0FBU0MsTUFBakMsQ0FBOUIsQ0FBTjtBQUNILEtBRkQsTUFFTyxJQUFJVixhQUFhLENBQUNPLE9BQWQsQ0FBc0IsUUFBdEIsTUFBb0MsQ0FBeEMsRUFBMkM7QUFDOUMsWUFBTUYsRUFBRSxDQUFDTSxhQUFILENBQWlCWCxhQUFhLENBQUNTLFNBQWQsQ0FBd0IsU0FBU0MsTUFBakMsQ0FBakIsQ0FBTjtBQUNILEtBRk0sTUFFQSxJQUFJVixhQUFhLENBQUNPLE9BQWQsQ0FBc0IsUUFBdEIsTUFBb0MsQ0FBeEMsRUFBMkM7QUFDOUMsWUFBTUYsRUFBRSxDQUFDTyxtQkFBSCxDQUF1QlosYUFBYSxDQUFDUyxTQUFkLENBQXdCLFNBQVNDLE1BQWpDLENBQXZCLENBQU47QUFDSCxLQUZNLE1BRUE7QUFDSCxZQUFNTCxFQUFFLENBQUNPLG1CQUFILENBQXVCWixhQUF2QixDQUFOO0FBQ0g7QUFDSixHQVZELENBVUUsT0FBT2EsQ0FBUCxFQUFVO0FBQ1IsUUFBSUEsQ0FBQyxDQUFDQyxPQUFGLElBQWFELENBQUMsQ0FBQ0MsT0FBRixDQUFVQyxVQUFWLENBQXFCLGNBQXJCLENBQWpCLEVBQXVEO0FBQ25ELFlBQU0sSUFBSSxLQUFLQyxPQUFULENBQWlCLEtBQUtDLFNBQUwsQ0FBZUMsU0FBZixDQUF5QkMsZ0JBQTFDLEVBQTRETixDQUFDLENBQUNDLE9BQTlELENBQU47QUFDSDs7QUFDRCxVQUFNRCxDQUFOO0FBQ0g7QUFDSixDQXRCRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFNlbGVjdHMgYW4gb3B0aW9uIGZyb20gYSBkcm9wLWRvd24gbGlzdCB1c2luZyBhbiBvcHRpb24gbG9jYXRvci4gVGhpcyBjb21tYW5kIHdvcmtzXHJcbiAqICAgICAgICAgIHdpdGggbXVsdGlwbGUtY2hvaWNlIGxpc3RzIGFzIHdlbGwuXHJcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb24gbG9jYXRvciBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcgKE5vIHByZWZpeCBpcyBzYW1lIGFzIGxhYmVsIG1hdGNoaW5nKTogIFxyXG4gKiAgICAgICAgICAgICAgLSBgbGFiZWw9U1RSSU5HYCAtIE1hdGNoZXMgb3B0aW9uIGJhc2VkIG9uIHRoZSB2aXNpYmxlIHRleHQuICBcclxuICogICAgICAgICAgICAgIC0gYHZhbHVlPVNUUklOR2AgLSBNYXRjaGVzIG9wdGlvbiBiYXNlZCBvbiBpdHMgdmFsdWUuICBcclxuICogICAgICAgICAgICAgIC0gYGluZGV4PVNUUklOR2AgLSBNYXRjaGVzIG9wdGlvbiBiYXNlZCBvbiBpdHMgaW5kZXguIFRoZSBpbmRleCBpcyAwLWJhc2VkLlxyXG4gKiBAZnVuY3Rpb24gc2VsZWN0XHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RMb2NhdG9yIC0gQW4gZWxlbWVudCBsb2NhdG9yIGlkZW50aWZ5aW5nIGEgZHJvcC1kb3duIG1lbnUuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBvcHRpb25Mb2NhdG9yIC0gQW4gb3B0aW9uIGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7TnVtYmVyPX0gdGltZW91dCAtIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0IGlzIDYwIHNlY29uZHMuXHJcbiAqIEBmb3IgaHlicmlkLCB3ZWJcclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIG1vYi5pbml0KCk7IC8vU3RhcnRzIGEgbW9iaWxlIHNlc3Npb25cclxuICogbW9iLm9wZW4oXCJ3d3cueW91cndlYnNpdGUuY29tXCIpOy8vIE9wZW5zIGEgd2Vic2l0ZS5cclxuICogbW9iLnNlbGVjdChcImlkPVNlbGVjdGlvblwiLFwibGFiZWw9VW5pdGVkIFN0YXRlc1wiKTsvLyBTZWxlY3RzIGFuIG9wdGlvbiBmcm9tIGEgbGlzdC4gXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKHNlbGVjdExvY2F0b3IsIG9wdGlvbkxvY2F0b3IsIHRpbWVvdXQpIHtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nKG9wdGlvbkxvY2F0b3IsICdvcHRpb25Mb2NhdG9yJyk7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnRUaW1lb3V0KHRpbWVvdXQsICd0aW1lb3V0Jyk7XHJcblxyXG4gICAgdmFyIGVsID0gYXdhaXQgdGhpcy5oZWxwZXJzLmdldEVsZW1lbnQoc2VsZWN0TG9jYXRvciwgZmFsc2UsIHRpbWVvdXQpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgICAgaWYgKG9wdGlvbkxvY2F0b3IuaW5kZXhPZigndmFsdWU9JykgPT09IDApIHtcclxuICAgICAgICAgICAgYXdhaXQgZWwuc2VsZWN0QnlBdHRyaWJ1dGUoJ3ZhbHVlJywgb3B0aW9uTG9jYXRvci5zdWJzdHJpbmcoJ3ZhbHVlPScubGVuZ3RoKSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25Mb2NhdG9yLmluZGV4T2YoJ2luZGV4PScpID09PSAwKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGVsLnNlbGVjdEJ5SW5kZXgob3B0aW9uTG9jYXRvci5zdWJzdHJpbmcoJ2luZGV4PScubGVuZ3RoKSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25Mb2NhdG9yLmluZGV4T2YoJ2xhYmVsPScpID09PSAwKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGVsLnNlbGVjdEJ5VmlzaWJsZVRleHQob3B0aW9uTG9jYXRvci5zdWJzdHJpbmcoJ2xhYmVsPScubGVuZ3RoKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYXdhaXQgZWwuc2VsZWN0QnlWaXNpYmxlVGV4dChvcHRpb25Mb2NhdG9yKTtcclxuICAgICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgaWYgKGUubWVzc2FnZSAmJiBlLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnT3B0aW9uIHdpdGggJykpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuT1BUSU9OX05PVF9GT1VORCwgZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhyb3cgZTtcclxuICAgIH1cclxufTtcclxuIl19
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("source-map-support/register");
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU General Public License as published by
|
|
10
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
* (at your option) any later version.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @summary Selects a frame or an iframe within the current window.
|
|
16
|
-
* @description Available frame locators:
|
|
17
|
-
* - `'parent'` - Select parent frame.
|
|
18
|
-
* - `'top'` - Select top window.
|
|
19
|
-
* - `NUMBER` - Select frame by its 0-based index.
|
|
20
|
-
* - `LOCATOR` - Locator identifying the frame (relative to the top window).
|
|
21
|
-
* Multiple locators can be passed in order to switch between nested frames.
|
|
22
|
-
* @function selectFrame
|
|
23
|
-
* @param {...String|Number} frameLocator - A locator identifying the frame or iframe. Or a series
|
|
24
|
-
* of locators.
|
|
25
|
-
* @for hybrid, web
|
|
26
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
27
|
-
* mob.init(caps);//Starts a mobile session and opens app from desired capabilities
|
|
28
|
-
* mob.selectFrame("//iframe[@id='frame1']", "//iframe[@id='nested_frame']");
|
|
29
|
-
*/
|
|
30
|
-
module.exports = async function (frameLocator) {
|
|
31
|
-
await this.helpers.assertContext(this.helpers.contextList.hybrid, this.helpers.contextList.web);
|
|
32
|
-
|
|
33
|
-
if (frameLocator === 'parent') {
|
|
34
|
-
// parent
|
|
35
|
-
await this.driver.switchToParentFrame();
|
|
36
|
-
} else if (frameLocator === 'top') {
|
|
37
|
-
// top
|
|
38
|
-
await this.driver.switchToFrame(null);
|
|
39
|
-
} else if (!isNaN(frameLocator)) {
|
|
40
|
-
// frame index
|
|
41
|
-
await this.driver.switchToFrame(frameLocator);
|
|
42
|
-
} else {
|
|
43
|
-
// frame locator(s)
|
|
44
|
-
await this.driver.switchToFrame(null);
|
|
45
|
-
|
|
46
|
-
for (var i = 0; i < arguments.length; i++) {
|
|
47
|
-
var locator = arguments[i];
|
|
48
|
-
var el = await this.helpers.getElement(locator);
|
|
49
|
-
await this.driver.switchToFrame(el);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc2VsZWN0RnJhbWUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImZyYW1lTG9jYXRvciIsImhlbHBlcnMiLCJhc3NlcnRDb250ZXh0IiwiY29udGV4dExpc3QiLCJoeWJyaWQiLCJ3ZWIiLCJkcml2ZXIiLCJzd2l0Y2hUb1BhcmVudEZyYW1lIiwic3dpdGNoVG9GcmFtZSIsImlzTmFOIiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsImxvY2F0b3IiLCJlbCIsImdldEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsWUFBZixFQUE2QjtBQUMxQyxRQUFNLEtBQUtDLE9BQUwsQ0FBYUMsYUFBYixDQUEyQixLQUFLRCxPQUFMLENBQWFFLFdBQWIsQ0FBeUJDLE1BQXBELEVBQTRELEtBQUtILE9BQUwsQ0FBYUUsV0FBYixDQUF5QkUsR0FBckYsQ0FBTjs7QUFDQSxNQUFJTCxZQUFZLEtBQUssUUFBckIsRUFBK0I7QUFBaUI7QUFDNUMsVUFBTSxLQUFLTSxNQUFMLENBQVlDLG1CQUFaLEVBQU47QUFDSCxHQUZELE1BRU8sSUFBSVAsWUFBWSxLQUFLLEtBQXJCLEVBQTRCO0FBQWE7QUFDNUMsVUFBTSxLQUFLTSxNQUFMLENBQVlFLGFBQVosQ0FBMEIsSUFBMUIsQ0FBTjtBQUNILEdBRk0sTUFFQSxJQUFJLENBQUNDLEtBQUssQ0FBQ1QsWUFBRCxDQUFWLEVBQTBCO0FBQWU7QUFDNUMsVUFBTSxLQUFLTSxNQUFMLENBQVlFLGFBQVosQ0FBMEJSLFlBQTFCLENBQU47QUFDSCxHQUZNLE1BRUE7QUFBeUM7QUFDNUMsVUFBTSxLQUFLTSxNQUFMLENBQVlFLGFBQVosQ0FBMEIsSUFBMUIsQ0FBTjs7QUFDQSxTQUFLLElBQUlFLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdDLFNBQVMsQ0FBQ0MsTUFBOUIsRUFBc0NGLENBQUMsRUFBdkMsRUFBMkM7QUFDdkMsVUFBSUcsT0FBTyxHQUFHRixTQUFTLENBQUNELENBQUQsQ0FBdkI7QUFDQSxVQUFJSSxFQUFFLEdBQUcsTUFBTSxLQUFLYixPQUFMLENBQWFjLFVBQWIsQ0FBd0JGLE9BQXhCLENBQWY7QUFDQSxZQUFNLEtBQUtQLE1BQUwsQ0FBWUUsYUFBWixDQUEwQk0sRUFBMUIsQ0FBTjtBQUNIO0FBQ0o7QUFDSixDQWhCRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFNlbGVjdHMgYSBmcmFtZSBvciBhbiBpZnJhbWUgd2l0aGluIHRoZSBjdXJyZW50IHdpbmRvdy5cclxuICogQGRlc2NyaXB0aW9uIEF2YWlsYWJsZSBmcmFtZSBsb2NhdG9yczogIFxyXG4gKiAgICAgICAgICAgICAgLSBgJ3BhcmVudCdgIC0gU2VsZWN0IHBhcmVudCBmcmFtZS4gIFxyXG4gKiAgICAgICAgICAgICAgLSBgJ3RvcCdgIC0gU2VsZWN0IHRvcCB3aW5kb3cuICBcclxuICogICAgICAgICAgICAgIC0gYE5VTUJFUmAgLSBTZWxlY3QgZnJhbWUgYnkgaXRzIDAtYmFzZWQgaW5kZXguICBcclxuICogICAgICAgICAgICAgIC0gYExPQ0FUT1JgIC0gTG9jYXRvciBpZGVudGlmeWluZyB0aGUgZnJhbWUgKHJlbGF0aXZlIHRvIHRoZSB0b3Agd2luZG93KS5cclxuICogICAgICAgICAgICAgIE11bHRpcGxlIGxvY2F0b3JzIGNhbiBiZSBwYXNzZWQgaW4gb3JkZXIgdG8gc3dpdGNoIGJldHdlZW4gbmVzdGVkIGZyYW1lcy5cclxuICogQGZ1bmN0aW9uIHNlbGVjdEZyYW1lXHJcbiAqIEBwYXJhbSB7Li4uU3RyaW5nfE51bWJlcn0gZnJhbWVMb2NhdG9yIC0gQSBsb2NhdG9yIGlkZW50aWZ5aW5nIHRoZSBmcmFtZSBvciBpZnJhbWUuIE9yIGEgc2VyaWVzIFxyXG4gKiAgICAgICAgIG9mIGxvY2F0b3JzLlxyXG4gKiBAZm9yIGh5YnJpZCwgd2ViXHJcbiAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gKiBtb2IuaW5pdChjYXBzKTsvL1N0YXJ0cyBhIG1vYmlsZSBzZXNzaW9uIGFuZCBvcGVucyBhcHAgZnJvbSBkZXNpcmVkIGNhcGFiaWxpdGllc1xyXG4gKiBtb2Iuc2VsZWN0RnJhbWUoXCIvL2lmcmFtZVtAaWQ9J2ZyYW1lMSddXCIsIFwiLy9pZnJhbWVbQGlkPSduZXN0ZWRfZnJhbWUnXVwiKTtcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gYXN5bmMgZnVuY3Rpb24oZnJhbWVMb2NhdG9yKSB7XHJcbiAgICBhd2FpdCB0aGlzLmhlbHBlcnMuYXNzZXJ0Q29udGV4dCh0aGlzLmhlbHBlcnMuY29udGV4dExpc3QuaHlicmlkLCB0aGlzLmhlbHBlcnMuY29udGV4dExpc3Qud2ViKTtcclxuICAgIGlmIChmcmFtZUxvY2F0b3IgPT09ICdwYXJlbnQnKSB7ICAgICAgICAgICAgICAgIC8vIHBhcmVudFxyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaFRvUGFyZW50RnJhbWUoKTtcclxuICAgIH0gZWxzZSBpZiAoZnJhbWVMb2NhdG9yID09PSAndG9wJykgeyAgICAgICAgICAgIC8vIHRvcFxyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaFRvRnJhbWUobnVsbCk7XHJcbiAgICB9IGVsc2UgaWYgKCFpc05hTihmcmFtZUxvY2F0b3IpKSB7ICAgICAgICAgICAgICAvLyBmcmFtZSBpbmRleFxyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaFRvRnJhbWUoZnJhbWVMb2NhdG9yKTtcclxuICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZyYW1lIGxvY2F0b3IocylcclxuICAgICAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hUb0ZyYW1lKG51bGwpO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHZhciBsb2NhdG9yID0gYXJndW1lbnRzW2ldO1xyXG4gICAgICAgICAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yKTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoVG9GcmFtZShlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG4iXX0=
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("source-map-support/register");
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU General Public License as published by
|
|
10
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
* (at your option) any later version.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @summary Selects window. Once window has been selected, all commands go to that window.
|
|
16
|
-
* @description `windowLocator` can be:
|
|
17
|
-
* - `title=TITLE` Switch to the first window which matches the specified title. `TITLE` can be any of
|
|
18
|
-
* the supported string matching patterns (see top of the page). When using title locator, this command
|
|
19
|
-
* will wait for the window to appear first similarly to `waitForWindow` command.
|
|
20
|
-
* - `url=URL` Switch to the first window which matches the specified URL. `URL` can be any of
|
|
21
|
-
* the supported string matching patterns (see top of the page). When using url locator, this command
|
|
22
|
-
* will wait for the window to appear first similarly to `waitForWindow` command.
|
|
23
|
-
* - `windowHandle` Switch to a window using its unique handle.
|
|
24
|
-
* @function selectWindow
|
|
25
|
-
* @param {String=} windowLocator - Window locator.
|
|
26
|
-
* @param {Number=} timeout - Timeout in milliseconds when using 'title' window locating strategy.
|
|
27
|
-
* Default is 60 seconds.
|
|
28
|
-
* @return {String} windowHandle of the previously selected window.
|
|
29
|
-
* @for web
|
|
30
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
31
|
-
* mob.init();// Starts a mobile session.
|
|
32
|
-
* mob.open("www.yourwebsite.com");// Opens a website.
|
|
33
|
-
* mob.selectWindow("title=Website");// Selects and focus a window.
|
|
34
|
-
*/
|
|
35
|
-
module.exports = async function (windowLocator, timeout) {
|
|
36
|
-
this.helpers.assertArgument(windowLocator, 'windowLocator');
|
|
37
|
-
var currentHandle;
|
|
38
|
-
var currentHandleTitle;
|
|
39
|
-
var currentHandleUrl;
|
|
40
|
-
var swithToCurrentHandleErrorMsg = 'Unable to switch to previous selected window'; // getWindowHandle() could possibly fail if there is no active window,
|
|
41
|
-
// so we select the last opened one in such case
|
|
42
|
-
|
|
43
|
-
try {
|
|
44
|
-
currentHandle = await this.driver.getWindowHandle();
|
|
45
|
-
} catch (err) {
|
|
46
|
-
var wnds = await this.driver.getWindowHandles();
|
|
47
|
-
await this.driver.switchToWindow(wnds[wnds.length - 1]);
|
|
48
|
-
currentHandle = await this.driver.getWindowHandle();
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (currentHandle) {
|
|
52
|
-
currentHandleTitle = await this.driver.getTitle();
|
|
53
|
-
currentHandleUrl = await this.driver.getUrl();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
var windowHandles;
|
|
57
|
-
|
|
58
|
-
if (windowLocator.indexOf('title=') === 0) {
|
|
59
|
-
let pattern = windowLocator.substring('title='.length);
|
|
60
|
-
let start = new Date().getTime();
|
|
61
|
-
timeout = !timeout ? this.waitForTimeout : timeout;
|
|
62
|
-
|
|
63
|
-
while (new Date().getTime() - start < timeout) {
|
|
64
|
-
windowHandles = await this.driver.getWindowHandles();
|
|
65
|
-
|
|
66
|
-
for (let i = 0; i < windowHandles.length; i++) {
|
|
67
|
-
let handle = windowHandles[i];
|
|
68
|
-
|
|
69
|
-
try {
|
|
70
|
-
await this.driver.switchToWindow(handle);
|
|
71
|
-
} catch (err) {
|
|
72
|
-
// in case window was closed
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
let title = await this.driver.getTitle();
|
|
77
|
-
|
|
78
|
-
if (this.helpers.matchPattern(title, pattern)) {
|
|
79
|
-
return currentHandle;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
this.pause(1000);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
try {
|
|
87
|
-
// if window not found - switch to original one and throw
|
|
88
|
-
await this.driver.switchToWindow(currentHandle);
|
|
89
|
-
} catch (err) {
|
|
90
|
-
// in case window was closed
|
|
91
|
-
if (currentHandleTitle) {
|
|
92
|
-
swithToCurrentHandleErrorMsg += `: ${currentHandleTitle}`;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
throw new this.OxError(this.errHelper.errorCode.WINDOW_NOT_FOUND, swithToCurrentHandleErrorMsg);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
throw new this.OxError(this.errHelper.errorCode.WINDOW_NOT_FOUND, `Unable to find window: ${windowLocator}`);
|
|
99
|
-
} else if (windowLocator.indexOf('url=') === 0) {
|
|
100
|
-
let pattern = windowLocator.substring('url='.length);
|
|
101
|
-
let start = new Date().getTime();
|
|
102
|
-
timeout = !timeout ? this.waitForTimeout : timeout;
|
|
103
|
-
|
|
104
|
-
while (new Date().getTime() - start < timeout) {
|
|
105
|
-
windowHandles = await this.driver.getWindowHandles();
|
|
106
|
-
|
|
107
|
-
for (let i = 0; i < windowHandles.length; i++) {
|
|
108
|
-
let handle = windowHandles[i];
|
|
109
|
-
|
|
110
|
-
try {
|
|
111
|
-
await this.driver.switchToWindow(handle);
|
|
112
|
-
} catch (err) {
|
|
113
|
-
// in case window was closed
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
let url = await this.driver.getUrl();
|
|
118
|
-
|
|
119
|
-
if (this.helpers.matchPattern(url, pattern)) {
|
|
120
|
-
return currentHandle;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
this.pause(1000);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
try {
|
|
128
|
-
// if window not found - switch to original one and throw
|
|
129
|
-
await this.driver.switchToWindow(currentHandle);
|
|
130
|
-
} catch (err) {
|
|
131
|
-
if (currentHandleUrl) {
|
|
132
|
-
swithToCurrentHandleErrorMsg += `: ${currentHandleUrl}`;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
throw new this.OxError(this.errHelper.errorCode.WINDOW_NOT_FOUND, swithToCurrentHandleErrorMsg);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
throw new this.OxError(this.errHelper.errorCode.WINDOW_NOT_FOUND, `Unable to find window: ${windowLocator}`);
|
|
139
|
-
} else {
|
|
140
|
-
try {
|
|
141
|
-
await this.driver.switchToWindow(windowLocator);
|
|
142
|
-
} catch (err) {
|
|
143
|
-
throw new this.OxError(this.errHelper.errorCode.WINDOW_NOT_FOUND, err.message);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
return currentHandle;
|
|
148
|
-
};
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc2VsZWN0V2luZG93LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJ3aW5kb3dMb2NhdG9yIiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudCIsImN1cnJlbnRIYW5kbGUiLCJjdXJyZW50SGFuZGxlVGl0bGUiLCJjdXJyZW50SGFuZGxlVXJsIiwic3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyIsImRyaXZlciIsImdldFdpbmRvd0hhbmRsZSIsImVyciIsInduZHMiLCJnZXRXaW5kb3dIYW5kbGVzIiwic3dpdGNoVG9XaW5kb3ciLCJsZW5ndGgiLCJnZXRUaXRsZSIsImdldFVybCIsIndpbmRvd0hhbmRsZXMiLCJpbmRleE9mIiwicGF0dGVybiIsInN1YnN0cmluZyIsInN0YXJ0IiwiRGF0ZSIsImdldFRpbWUiLCJ3YWl0Rm9yVGltZW91dCIsImkiLCJoYW5kbGUiLCJ0aXRsZSIsIm1hdGNoUGF0dGVybiIsInBhdXNlIiwiT3hFcnJvciIsImVyckhlbHBlciIsImVycm9yQ29kZSIsIldJTkRPV19OT1RfRk9VTkQiLCJ1cmwiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLGdCQUFlQyxhQUFmLEVBQThCQyxPQUE5QixFQUF1QztBQUNwRCxPQUFLQyxPQUFMLENBQWFDLGNBQWIsQ0FBNEJILGFBQTVCLEVBQTJDLGVBQTNDO0FBQ0EsTUFBSUksYUFBSjtBQUNBLE1BQUlDLGtCQUFKO0FBQ0EsTUFBSUMsZ0JBQUo7QUFDQSxNQUFJ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S0MsU0FBTCxDQUFlQyxTQUFmLENBQXlCQyxnQkFBMUMsRUFBNEQxQiw0QkFBNUQsQ0FBTjtBQUNIOztBQUNELFVBQU0sSUFBSSxLQUFLdUIsT0FBVCxDQUFpQixLQUFLQyxTQUFMLENBQWVDLFNBQWYsQ0FBeUJDLGdCQUExQyxFQUE2RCwwQkFBeUJqQyxhQUFjLEVBQXBHLENBQU47QUFDSCxHQS9CTSxNQStCQTtBQUNILFFBQUk7QUFDQSxZQUFNLEtBQUtRLE1BQUwsQ0FBWUssY0FBWixDQUEyQmIsYUFBM0IsQ0FBTjtBQUNILEtBRkQsQ0FFRSxPQUFPVSxHQUFQLEVBQVk7QUFDVixZQUFNLElBQUksS0FBS29CLE9BQVQsQ0FBaUIsS0FBS0MsU0FBTCxDQUFlQyxTQUFmLENBQXlCQyxnQkFBMUMsRUFBNER2QixHQUFHLENBQUN5QixPQUFoRSxDQUFOO0FBQ0g7QUFDSjs7QUFFRCxTQUFPL0IsYUFBUDtBQUNILENBaEdEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQHN1bW1hcnkgU2VsZWN0cyB3aW5kb3cuIE9uY2Ugd2luZG93IGhhcyBiZWVuIHNlbGVjdGVkLCBhbGwgY29tbWFuZHMgZ28gdG8gdGhhdCB3aW5kb3cuXHJcbiAqIEBkZXNjcmlwdGlvbiBgd2luZG93TG9jYXRvcmAgY2FuIGJlOiAgXHJcbiAqIC0gYHRpdGxlPVRJVExFYCBTd2l0Y2ggdG8gdGhlIGZpcnN0IHdpbmRvdyB3aGljaCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgdGl0bGUuIGBUSVRMRWAgY2FuIGJlIGFueSBvZlxyXG4gKiB0aGUgc3VwcG9ydGVkIHN0cmluZyBtYXRjaGluZyBwYXR0ZXJucyAoc2VlIHRvcCBvZiB0aGUgcGFnZSkuIFdoZW4gdXNpbmcgdGl0bGUgbG9jYXRvciwgdGhpcyBjb21tYW5kXHJcbiAqIHdpbGwgd2FpdCBmb3IgdGhlIHdpbmRvdyB0byBhcHBlYXIgZmlyc3Qgc2ltaWxhcmx5IHRvIGB3YWl0Rm9yV2luZG93YCBjb21tYW5kLiAgXHJcbiAqIC0gYHVybD1VUkxgIFN3aXRjaCB0byB0aGUgZmlyc3Qgd2luZG93IHdoaWNoIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBVUkwuIGBVUkxgIGNhbiBiZSBhbnkgb2ZcclxuICogdGhlIHN1cHBvcnRlZCBzdHJpbmcgbWF0Y2hpbmcgcGF0dGVybnMgKHNlZSB0b3Agb2YgdGhlIHBhZ2UpLiBXaGVuIHVzaW5nIHVybCBsb2NhdG9yLCB0aGlzIGNvbW1hbmRcclxuICogd2lsbCB3YWl0IGZvciB0aGUgd2luZG93IHRvIGFwcGVhciBmaXJzdCBzaW1pbGFybHkgdG8gYHdhaXRGb3JXaW5kb3dgIGNvbW1hbmQuICBcclxuICogLSBgd2luZG93SGFuZGxlYCBTd2l0Y2ggdG8gYSB3aW5kb3cgdXNpbmcgaXRzIHVuaXF1ZSBoYW5kbGUuXHJcbiAqIEBmdW5jdGlvbiBzZWxlY3RXaW5kb3dcclxuICogQHBhcmFtIHtTdHJpbmc9fSB3aW5kb3dMb2NhdG9yIC0gV2luZG93IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7TnVtYmVyPX0gdGltZW91dCAtIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHdoZW4gdXNpbmcgJ3RpdGxlJyB3aW5kb3cgbG9jYXRpbmcgc3RyYXRlZ3kuIFxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxyXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHdpbmRvd0hhbmRsZSBvZiB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB3aW5kb3cuXHJcbiAqIEBmb3Igd2ViXHJcbiAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gKiBtb2IuaW5pdCgpOy8vIFN0YXJ0cyBhIG1vYmlsZSBzZXNzaW9uLlxyXG4gKiBtb2Iub3BlbihcInd3dy55b3Vyd2Vic2l0ZS5jb21cIik7Ly8gT3BlbnMgYSB3ZWJzaXRlLlxyXG4gKiBtb2Iuc2VsZWN0V2luZG93KFwidGl0bGU9V2Vic2l0ZVwiKTsvLyBTZWxlY3RzIGFuZCBmb2N1cyBhIHdpbmRvdy4gXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKHdpbmRvd0xvY2F0b3IsIHRpbWVvdXQpIHtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudCh3aW5kb3dMb2NhdG9yLCAnd2luZG93TG9jYXRvcicpO1xyXG4gICAgdmFyIGN1cnJlbnRIYW5kbGU7XHJcbiAgICB2YXIgY3VycmVudEhhbmRsZVRpdGxlO1xyXG4gICAgdmFyIGN1cnJlbnRIYW5kbGVVcmw7XHJcbiAgICB2YXIgc3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyA9ICdVbmFibGUgdG8gc3dpdGNoIHRvIHByZXZpb3VzIHNlbGVjdGVkIHdpbmRvdyc7XHJcblxyXG4gICAgLy8gZ2V0V2luZG93SGFuZGxlKCkgY291bGQgcG9zc2libHkgZmFpbCBpZiB0aGVyZSBpcyBubyBhY3RpdmUgd2luZG93LFxyXG4gICAgLy8gc28gd2Ugc2VsZWN0IHRoZSBsYXN0IG9wZW5lZCBvbmUgaW4gc3VjaCBjYXNlXHJcbiAgICB0cnkge1xyXG4gICAgICAgIGN1cnJlbnRIYW5kbGUgPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRXaW5kb3dIYW5kbGUoKTtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIHZhciB3bmRzID0gYXdhaXQgdGhpcy5kcml2ZXIuZ2V0V2luZG93SGFuZGxlcygpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaFRvV2luZG93KHduZHNbd25kcy5sZW5ndGggLSAxXSk7XHJcbiAgICAgICAgY3VycmVudEhhbmRsZSA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFdpbmRvd0hhbmRsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjdXJyZW50SGFuZGxlKSB7XHJcbiAgICAgICAgY3VycmVudEhhbmRsZVRpdGxlID0gYXdhaXQgdGhpcy5kcml2ZXIuZ2V0VGl0bGUoKTtcclxuICAgICAgICBjdXJyZW50SGFuZGxlVXJsID0gYXdhaXQgdGhpcy5kcml2ZXIuZ2V0VXJsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHdpbmRvd0hhbmRsZXM7XHJcbiAgICBpZiAod2luZG93TG9jYXRvci5pbmRleE9mKCd0aXRsZT0nKSA9PT0gMCkge1xyXG4gICAgICAgIGxldCBwYXR0ZXJuID0gd2luZG93TG9jYXRvci5zdWJzdHJpbmcoJ3RpdGxlPScubGVuZ3RoKTtcclxuICAgICAgICBsZXQgc3RhcnQgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xyXG4gICAgICAgIHRpbWVvdXQgPSAhdGltZW91dCA/IHRoaXMud2FpdEZvclRpbWVvdXQgOiB0aW1lb3V0O1xyXG4gICAgICAgIHdoaWxlICgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC0gc3RhcnQgPCB0aW1lb3V0KSB7XHJcbiAgICAgICAgICAgIHdpbmRvd0hhbmRsZXMgPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRXaW5kb3dIYW5kbGVzKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd2luZG93SGFuZGxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGhhbmRsZSA9IHdpbmRvd0hhbmRsZXNbaV07XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaFRvV2luZG93KGhhbmRsZSk7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsgLy8gaW4gY2FzZSB3aW5kb3cgd2FzIGNsb3NlZFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gYXdhaXQgdGhpcy5kcml2ZXIuZ2V0VGl0bGUoKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlbHBlcnMubWF0Y2hQYXR0ZXJuKHRpdGxlLCBwYXR0ZXJuKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50SGFuZGxlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UoMTAwMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyBpZiB3aW5kb3cgbm90IGZvdW5kIC0gc3dpdGNoIHRvIG9yaWdpbmFsIG9uZSBhbmQgdGhyb3dcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoVG9XaW5kb3coY3VycmVudEhhbmRsZSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7IC8vIGluIGNhc2Ugd2luZG93IHdhcyBjbG9zZWRcclxuXHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50SGFuZGxlVGl0bGUpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRoVG9DdXJyZW50SGFuZGxlRXJyb3JNc2cgKz0gYDogJHtjdXJyZW50SGFuZGxlVGl0bGV9YDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuV0lORE9XX05PVF9GT1VORCwgc3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IG5ldyB0aGlzLk94RXJyb3IodGhpcy5lcnJIZWxwZXIuZXJyb3JDb2RlLldJTkRPV19OT1RfRk9VTkQsIGBVbmFibGUgdG8gZmluZCB3aW5kb3c6ICR7d2luZG93TG9jYXRvcn1gKTtcclxuICAgIH0gZWxzZSBpZiAod2luZG93TG9jYXRvci5pbmRleE9mKCd1cmw9JykgPT09IDApIHtcclxuICAgICAgICBsZXQgcGF0dGVybiA9IHdpbmRvd0xvY2F0b3Iuc3Vic3RyaW5nKCd1cmw9Jy5sZW5ndGgpO1xyXG4gICAgICAgIGxldCBzdGFydCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgdGltZW91dCA9ICF0aW1lb3V0ID8gdGhpcy53YWl0Rm9yVGltZW91dCA6IHRpbWVvdXQ7XHJcbiAgICAgICAgd2hpbGUgKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLSBzdGFydCA8IHRpbWVvdXQpIHtcclxuICAgICAgICAgICAgd2luZG93SGFuZGxlcyA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFdpbmRvd0hhbmRsZXMoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aW5kb3dIYW5kbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaGFuZGxlID0gd2luZG93SGFuZGxlc1tpXTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoVG9XaW5kb3coaGFuZGxlKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgeyAvLyBpbiBjYXNlIHdpbmRvdyB3YXMgY2xvc2VkXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gYXdhaXQgdGhpcy5kcml2ZXIuZ2V0VXJsKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oZWxwZXJzLm1hdGNoUGF0dGVybih1cmwsIHBhdHRlcm4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRIYW5kbGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5wYXVzZSgxMDAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIGlmIHdpbmRvdyBub3QgZm91bmQgLSBzd2l0Y2ggdG8gb3JpZ2luYWwgb25lIGFuZCB0aHJvd1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hUb1dpbmRvdyhjdXJyZW50SGFuZGxlKTtcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRIYW5kbGVVcmwpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRoVG9DdXJyZW50SGFuZGxlRXJyb3JNc2cgKz0gYDogJHtjdXJyZW50SGFuZGxlVXJsfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuV0lORE9XX05PVF9GT1VORCwgc3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IG5ldyB0aGlzLk94RXJyb3IodGhpcy5lcnJIZWxwZXIuZXJyb3JDb2RlLldJTkRPV19OT1RfRk9VTkQsIGBVbmFibGUgdG8gZmluZCB3aW5kb3c6ICR7d2luZG93TG9jYXRvcn1gKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoVG9XaW5kb3cod2luZG93TG9jYXRvcik7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyB0aGlzLk94RXJyb3IodGhpcy5lcnJIZWxwZXIuZXJyb3JDb2RlLldJTkRPV19OT1RfRk9VTkQsIGVyci5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRIYW5kbGU7XHJcbn07Il19
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("source-map-support/register");
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU General Public License as published by
|
|
10
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
* (at your option) any later version.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @summary Send a sequence of keyboard strokes to the active window or element.
|
|
16
|
-
* @description Refer to [Key Codes](https://w3c.github.io/webdriver/#keyboard-actions)
|
|
17
|
-
* for the list of supported raw keyboard key codes.
|
|
18
|
-
* @function sendKeys
|
|
19
|
-
* @param {(String|String[])} value - Sequence of key strokes to send. Can be either a string or an
|
|
20
|
-
* array of strings for sending raw key codes.
|
|
21
|
-
* @for android, ios, hybrid, web
|
|
22
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
23
|
-
* mob.init();//Opens browser session.
|
|
24
|
-
* mob.open("www.yourwebsite.com");// Opens a website.
|
|
25
|
-
* mob.sendKeys("Hello World");
|
|
26
|
-
* mob.sendKeys(["Backspace", "Backspace", "Enter"]); // send two Backspace key codes and Enter.
|
|
27
|
-
* // Unicode representation can be used directly as well:
|
|
28
|
-
* mob.sendKeys("Hello World\uE003\uE003\uE007");
|
|
29
|
-
*/
|
|
30
|
-
var checkUnicode = require('webdriverio/build/utils').checkUnicode;
|
|
31
|
-
|
|
32
|
-
module.exports = async function (value) {
|
|
33
|
-
this.helpers.assertArgument(value, 'value');
|
|
34
|
-
let keySequence = []; // WDIO implmentation of keys command invokes 'releaseActions' for W3C.
|
|
35
|
-
// However ' DELETE /wd/hub/session/*/actions' is not implmeneted at the very least in uiatomator2
|
|
36
|
-
// and `keys` crashes.
|
|
37
|
-
// thus, do same thing as WDIO except releaseActions
|
|
38
|
-
|
|
39
|
-
/*
|
|
40
|
-
* replace key with corresponding unicode character
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
if (typeof value === 'string') {
|
|
44
|
-
keySequence = checkUnicode(value);
|
|
45
|
-
} else if (Array.isArray(value)) {
|
|
46
|
-
// `instanceof Array` behaves strange when executed through vm.runInNewContext,
|
|
47
|
-
// it returns false for arrays and `driver.keys()` tests for arrays using `instaceof Array`
|
|
48
|
-
// thus we test using Array.isArray instead
|
|
49
|
-
// https://github.com/felixge/node-sandboxed-module/issues/13#issuecomment-299585213
|
|
50
|
-
for (const charSet of value) {
|
|
51
|
-
keySequence = keySequence.concat(checkUnicode(charSet));
|
|
52
|
-
}
|
|
53
|
-
} else {
|
|
54
|
-
throw new Error('"keys" command requires a string or array of strings as parameter');
|
|
55
|
-
}
|
|
56
|
-
/*
|
|
57
|
-
* JsonWireProtocol action
|
|
58
|
-
*/
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (!this.driver.isW3C) {
|
|
62
|
-
await this.driver.sendKeys(keySequence);
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
/*
|
|
66
|
-
* W3C way of handle it key actions
|
|
67
|
-
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const keyDownActions = keySequence.map(value => ({
|
|
71
|
-
type: 'keyDown',
|
|
72
|
-
value
|
|
73
|
-
}));
|
|
74
|
-
const keyUpActions = keySequence.map(value => ({
|
|
75
|
-
type: 'keyUp',
|
|
76
|
-
value
|
|
77
|
-
}));
|
|
78
|
-
await this.driver.performActions([{
|
|
79
|
-
type: 'key',
|
|
80
|
-
id: 'keyboard',
|
|
81
|
-
actions: [...keyDownActions, ...keyUpActions]
|
|
82
|
-
}]);
|
|
83
|
-
};
|
|
84
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc2VuZEtleXMuanMiXSwibmFtZXMiOlsiY2hlY2tVbmljb2RlIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJ2YWx1ZSIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudCIsImtleVNlcXVlbmNlIiwiQXJyYXkiLCJpc0FycmF5IiwiY2hhclNldCIsImNvbmNhdCIsIkVycm9yIiwiZHJpdmVyIiwiaXNXM0MiLCJzZW5kS2V5cyIsImtleURvd25BY3Rpb25zIiwibWFwIiwidHlwZSIsImtleVVwQWN0aW9ucyIsInBlcmZvcm1BY3Rpb25zIiwiaWQiLCJhY3Rpb25zIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlBLFlBQVksR0FBR0MsT0FBTyxDQUFDLHlCQUFELENBQVAsQ0FBbUNELFlBQXREOztBQUVBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsZ0JBQWVDLEtBQWYsRUFBc0I7QUFDbkMsT0FBS0MsT0FBTCxDQUFhQyxjQUFiLENBQTRCRixLQUE1QixFQUFtQyxPQUFuQztBQUVBLE1BQUlHLFdBQVcsR0FBRyxFQUFsQixDQUhtQyxDQUtuQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNKO0FBQ0E7O0FBQ0ksTUFBSSxPQUFPSCxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzNCRyxJQUFBQSxXQUFXLEdBQUdQLFlBQVksQ0FBQ0ksS0FBRCxDQUExQjtBQUNILEdBRkQsTUFFTyxJQUFJSSxLQUFLLENBQUNDLE9BQU4sQ0FBY0wsS0FBZCxDQUFKLEVBQTBCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBSyxNQUFNTSxPQUFYLElBQXNCTixLQUF0QixFQUE2QjtBQUN6QkcsTUFBQUEsV0FBVyxHQUFHQSxXQUFXLENBQUNJLE1BQVosQ0FBbUJYLFlBQVksQ0FBQ1UsT0FBRCxDQUEvQixDQUFkO0FBQ0g7QUFDSixHQVJNLE1BUUE7QUFDSCxVQUFNLElBQUlFLEtBQUosQ0FBVSxtRUFBVixDQUFOO0FBQ0g7QUFFRDtBQUNKO0FBQ0E7OztBQUNJLE1BQUksQ0FBQyxLQUFLQyxNQUFMLENBQVlDLEtBQWpCLEVBQXdCO0FBQ3BCLFVBQU0sS0FBS0QsTUFBTCxDQUFZRSxRQUFaLENBQXFCUixXQUFyQixDQUFOO0FBQ0E7QUFDSDtBQUVEO0FBQ0o7QUFDQTs7O0FBQ0ksUUFBTVMsY0FBYyxHQUFHVCxXQUFXLENBQUNVLEdBQVosQ0FBaUJiLEtBQUQsS0FBWTtBQUFFYyxJQUFBQSxJQUFJLEVBQUUsU0FBUjtBQUFtQmQsSUFBQUE7QUFBbkIsR0FBWixDQUFoQixDQUF2QjtBQUNBLFFBQU1lLFlBQVksR0FBR1osV0FBVyxDQUFDVSxHQUFaLENBQWlCYixLQUFELEtBQVk7QUFBRWMsSUFBQUEsSUFBSSxFQUFFLE9BQVI7QUFBaUJkLElBQUFBO0FBQWpCLEdBQVosQ0FBaEIsQ0FBckI7QUFFQSxRQUFNLEtBQUtTLE1BQUwsQ0FBWU8sY0FBWixDQUEyQixDQUFDO0FBQzlCRixJQUFBQSxJQUFJLEVBQUUsS0FEd0I7QUFFOUJHLElBQUFBLEVBQUUsRUFBRSxVQUYwQjtBQUc5QkMsSUFBQUEsT0FBTyxFQUFFLENBQUMsR0FBR04sY0FBSixFQUFvQixHQUFHRyxZQUF2QjtBQUhxQixHQUFELENBQTNCLENBQU47QUFLSCxDQTlDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFNlbmQgYSBzZXF1ZW5jZSBvZiBrZXlib2FyZCBzdHJva2VzIHRvIHRoZSBhY3RpdmUgd2luZG93IG9yIGVsZW1lbnQuXHJcbiAqIEBkZXNjcmlwdGlvbiBSZWZlciB0byBbS2V5IENvZGVzXShodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyLyNrZXlib2FyZC1hY3Rpb25zKVxyXG4gKiAgICAgICAgICAgICAgZm9yIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCByYXcga2V5Ym9hcmQga2V5IGNvZGVzLlxyXG4gKiBAZnVuY3Rpb24gc2VuZEtleXNcclxuICogQHBhcmFtIHsoU3RyaW5nfFN0cmluZ1tdKX0gdmFsdWUgLSBTZXF1ZW5jZSBvZiBrZXkgc3Ryb2tlcyB0byBzZW5kLiBDYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIFxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSBvZiBzdHJpbmdzIGZvciBzZW5kaW5nIHJhdyBrZXkgY29kZXMuXHJcbiAqIEBmb3IgYW5kcm9pZCwgaW9zLCBoeWJyaWQsIHdlYlxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogbW9iLmluaXQoKTsvL09wZW5zIGJyb3dzZXIgc2Vzc2lvbi5cclxuICogbW9iLm9wZW4oXCJ3d3cueW91cndlYnNpdGUuY29tXCIpOy8vIE9wZW5zIGEgd2Vic2l0ZS5cclxuICogbW9iLnNlbmRLZXlzKFwiSGVsbG8gV29ybGRcIik7XHJcbiAqIG1vYi5zZW5kS2V5cyhbXCJCYWNrc3BhY2VcIiwgXCJCYWNrc3BhY2VcIiwgXCJFbnRlclwiXSk7IC8vIHNlbmQgdHdvIEJhY2tzcGFjZSBrZXkgY29kZXMgYW5kIEVudGVyLlxyXG4gKiAvLyBVbmljb2RlIHJlcHJlc2VudGF0aW9uIGNhbiBiZSB1c2VkIGRpcmVjdGx5IGFzIHdlbGw6XHJcbiAqIG1vYi5zZW5kS2V5cyhcIkhlbGxvIFdvcmxkXFx1RTAwM1xcdUUwMDNcXHVFMDA3XCIpO1xyXG4qL1xyXG52YXIgY2hlY2tVbmljb2RlID0gcmVxdWlyZSgnd2ViZHJpdmVyaW8vYnVpbGQvdXRpbHMnKS5jaGVja1VuaWNvZGU7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKHZhbHVlKSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnQodmFsdWUsICd2YWx1ZScpO1xyXG5cclxuICAgIGxldCBrZXlTZXF1ZW5jZSA9IFtdO1xyXG5cclxuICAgIC8vIFdESU8gaW1wbG1lbnRhdGlvbiBvZiBrZXlzIGNvbW1hbmQgaW52b2tlcyAncmVsZWFzZUFjdGlvbnMnIGZvciBXM0MuXHJcbiAgICAvLyBIb3dldmVyICcgREVMRVRFIC93ZC9odWIvc2Vzc2lvbi8qL2FjdGlvbnMnIGlzIG5vdCBpbXBsbWVuZXRlZCBhdCB0aGUgdmVyeSBsZWFzdCBpbiB1aWF0b21hdG9yMlxyXG4gICAgLy8gYW5kIGBrZXlzYCBjcmFzaGVzLlxyXG4gICAgLy8gdGh1cywgZG8gc2FtZSB0aGluZyBhcyBXRElPIGV4Y2VwdCByZWxlYXNlQWN0aW9uc1xyXG5cclxuICAgIC8qXHJcbiAgICAgKiByZXBsYWNlIGtleSB3aXRoIGNvcnJlc3BvbmRpbmcgdW5pY29kZSBjaGFyYWN0ZXJcclxuICAgICAqL1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBrZXlTZXF1ZW5jZSA9IGNoZWNrVW5pY29kZSh2YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgLy8gYGluc3RhbmNlb2YgQXJyYXlgIGJlaGF2ZXMgc3RyYW5nZSB3aGVuIGV4ZWN1dGVkIHRocm91Z2ggdm0ucnVuSW5OZXdDb250ZXh0LFxyXG4gICAgICAgIC8vIGl0IHJldHVybnMgZmFsc2UgZm9yIGFycmF5cyBhbmQgYGRyaXZlci5rZXlzKClgIHRlc3RzIGZvciBhcnJheXMgdXNpbmcgYGluc3RhY2VvZiBBcnJheWBcclxuICAgICAgICAvLyB0aHVzIHdlIHRlc3QgdXNpbmcgQXJyYXkuaXNBcnJheSBpbnN0ZWFkXHJcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZlbGl4Z2Uvbm9kZS1zYW5kYm94ZWQtbW9kdWxlL2lzc3Vlcy8xMyNpc3N1ZWNvbW1lbnQtMjk5NTg1MjEzXHJcbiAgICAgICAgZm9yIChjb25zdCBjaGFyU2V0IG9mIHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGtleVNlcXVlbmNlID0ga2V5U2VxdWVuY2UuY29uY2F0KGNoZWNrVW5pY29kZShjaGFyU2V0KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wia2V5c1wiIGNvbW1hbmQgcmVxdWlyZXMgYSBzdHJpbmcgb3IgYXJyYXkgb2Ygc3RyaW5ncyBhcyBwYXJhbWV0ZXInKTtcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgICogSnNvbldpcmVQcm90b2NvbCBhY3Rpb25cclxuICAgICAqL1xyXG4gICAgaWYgKCF0aGlzLmRyaXZlci5pc1czQykge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnNlbmRLZXlzKGtleVNlcXVlbmNlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgICAqIFczQyB3YXkgb2YgaGFuZGxlIGl0IGtleSBhY3Rpb25zXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGtleURvd25BY3Rpb25zID0ga2V5U2VxdWVuY2UubWFwKCh2YWx1ZSkgPT4gKHsgdHlwZTogJ2tleURvd24nLCB2YWx1ZSB9KSk7XHJcbiAgICBjb25zdCBrZXlVcEFjdGlvbnMgPSBrZXlTZXF1ZW5jZS5tYXAoKHZhbHVlKSA9PiAoeyB0eXBlOiAna2V5VXAnLCB2YWx1ZSB9KSk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5kcml2ZXIucGVyZm9ybUFjdGlvbnMoW3tcclxuICAgICAgICB0eXBlOiAna2V5JyxcclxuICAgICAgICBpZDogJ2tleWJvYXJkJyxcclxuICAgICAgICBhY3Rpb25zOiBbLi4ua2V5RG93bkFjdGlvbnMsIC4uLmtleVVwQWN0aW9uc11cclxuICAgIH1dKTtcclxufTtcclxuIl19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("source-map-support/register");
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU General Public License as published by
|
|
10
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
* (at your option) any later version.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @function setContext
|
|
16
|
-
* @summary Sets a specific context (NATIVE_APP, WEBVIEW, etc.).
|
|
17
|
-
* @param {String} context - The context name.
|
|
18
|
-
* @for android, ios, hybrid, web
|
|
19
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
20
|
-
* mob.init(caps);//Starts a mobile session and opens app from desired capabilities
|
|
21
|
-
* mob.setContext('NATIVE_APP');//Sets a specific context (NATIVE_APP, WEBVIEW, etc.).
|
|
22
|
-
*/
|
|
23
|
-
module.exports = async function (context) {
|
|
24
|
-
this.helpers.assertArgumentNonEmptyString(context, 'context');
|
|
25
|
-
await this.driver.switchContext(context);
|
|
26
|
-
this.appContext = context;
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc2V0Q29udGV4dC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiY29udGV4dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nIiwiZHJpdmVyIiwic3dpdGNoQ29udGV4dCIsImFwcENvbnRleHQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsZ0JBQWVDLE9BQWYsRUFBd0I7QUFDckMsT0FBS0MsT0FBTCxDQUFhQyw0QkFBYixDQUEwQ0YsT0FBMUMsRUFBbUQsU0FBbkQ7QUFDQSxRQUFNLEtBQUtHLE1BQUwsQ0FBWUMsYUFBWixDQUEwQkosT0FBMUIsQ0FBTjtBQUNBLE9BQUtLLFVBQUwsR0FBa0JMLE9BQWxCO0FBQ0gsQ0FKRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBmdW5jdGlvbiBzZXRDb250ZXh0XHJcbiAqIEBzdW1tYXJ5IFNldHMgYSBzcGVjaWZpYyBjb250ZXh0IChOQVRJVkVfQVBQLCBXRUJWSUVXLCBldGMuKS5cclxuICogQHBhcmFtIHtTdHJpbmd9IGNvbnRleHQgLSBUaGUgY29udGV4dCBuYW1lLlxyXG4gKiBAZm9yIGFuZHJvaWQsIGlvcywgaHlicmlkLCB3ZWJcclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIG1vYi5pbml0KGNhcHMpOy8vU3RhcnRzIGEgbW9iaWxlIHNlc3Npb24gYW5kIG9wZW5zIGFwcCBmcm9tIGRlc2lyZWQgY2FwYWJpbGl0aWVzXHJcbiAqIG1vYi5zZXRDb250ZXh0KCdOQVRJVkVfQVBQJyk7Ly9TZXRzIGEgc3BlY2lmaWMgY29udGV4dCAoTkFUSVZFX0FQUCwgV0VCVklFVywgZXRjLikuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKGNvbnRleHQpIHtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nKGNvbnRleHQsICdjb250ZXh0Jyk7XHJcbiAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hDb250ZXh0KGNvbnRleHQpO1xyXG4gICAgdGhpcy5hcHBDb250ZXh0ID0gY29udGV4dDtcclxufTtcclxuIl19
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("source-map-support/register");
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU General Public License as published by
|
|
10
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
* (at your option) any later version.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @summary Sets context to NATIVE_APP.
|
|
16
|
-
* @function setNativeContext
|
|
17
|
-
* @for android, ios, hybrid, web
|
|
18
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
19
|
-
* mob.init(caps);//Starts a mobile session and opens app from desired capabilities
|
|
20
|
-
* mob.setNativeContext();//Sets context to NATIVE_APP.
|
|
21
|
-
*/
|
|
22
|
-
module.exports = async function () {
|
|
23
|
-
await this.driver.switchContext('NATIVE_APP');
|
|
24
|
-
this.appContext = 'NATIVE_APP';
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc2V0TmF0aXZlQ29udGV4dC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiZHJpdmVyIiwic3dpdGNoQ29udGV4dCIsImFwcENvbnRleHQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLGtCQUFpQjtBQUM5QixRQUFNLEtBQUtDLE1BQUwsQ0FBWUMsYUFBWixDQUEwQixZQUExQixDQUFOO0FBQ0EsT0FBS0MsVUFBTCxHQUFrQixZQUFsQjtBQUNILENBSEQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBTZXRzIGNvbnRleHQgdG8gTkFUSVZFX0FQUC5cclxuICogQGZ1bmN0aW9uIHNldE5hdGl2ZUNvbnRleHRcclxuICogQGZvciBhbmRyb2lkLCBpb3MsIGh5YnJpZCwgd2ViXHJcbiAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gKiBtb2IuaW5pdChjYXBzKTsvL1N0YXJ0cyBhIG1vYmlsZSBzZXNzaW9uIGFuZCBvcGVucyBhcHAgZnJvbSBkZXNpcmVkIGNhcGFiaWxpdGllc1xyXG4gKiBtb2Iuc2V0TmF0aXZlQ29udGV4dCgpOy8vU2V0cyBjb250ZXh0IHRvIE5BVElWRV9BUFAuXHJcbiovXHJcbm1vZHVsZS5leHBvcnRzID0gYXN5bmMgZnVuY3Rpb24oKSB7XHJcbiAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hDb250ZXh0KCdOQVRJVkVfQVBQJyk7XHJcbiAgICB0aGlzLmFwcENvbnRleHQgPSAnTkFUSVZFX0FQUCc7XHJcbn07XHJcbiJdfQ==
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("source-map-support/register");
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU General Public License as published by
|
|
10
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
* (at your option) any later version.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @summary Specifies the amount of time that Oxygen will wait for actions to complete.
|
|
16
|
-
* @description This includes the `open` command, `waitFor*` commands, and commands which wait
|
|
17
|
-
* for elements to appear in DOM or become visible before operating on them.
|
|
18
|
-
* If command wasn't able to complete within the specified period it will fail the
|
|
19
|
-
* test.
|
|
20
|
-
* The default time-out is 60 seconds.
|
|
21
|
-
* @function setTimeout
|
|
22
|
-
* @for android, ios, hybrid, web
|
|
23
|
-
* @param {Number} timeout - A time-out in milliseconds.
|
|
24
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
25
|
-
* mob.init();//Opens browser session.
|
|
26
|
-
* mob.setTimeout(60000);//Sets the time out to amount of milliseconds .
|
|
27
|
-
*/
|
|
28
|
-
module.exports = async function (timeout) {
|
|
29
|
-
this.helpers.assertArgumentNumberNonNegative(timeout, 'timeout');
|
|
30
|
-
this.waitForTimeout = timeout;
|
|
31
|
-
await this.helpers.setTimeoutImplicit(timeout);
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc2V0VGltZW91dC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudE51bWJlck5vbk5lZ2F0aXZlIiwid2FpdEZvclRpbWVvdXQiLCJzZXRUaW1lb3V0SW1wbGljaXQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLGdCQUFlQyxPQUFmLEVBQXdCO0FBQ3JDLE9BQUtDLE9BQUwsQ0FBYUMsK0JBQWIsQ0FBNkNGLE9BQTdDLEVBQXNELFNBQXREO0FBQ0EsT0FBS0csY0FBTCxHQUFzQkgsT0FBdEI7QUFDQSxRQUFNLEtBQUtDLE9BQUwsQ0FBYUcsa0JBQWIsQ0FBZ0NKLE9BQWhDLENBQU47QUFDSCxDQUpEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBhbW91bnQgb2YgdGltZSB0aGF0IE94eWdlbiB3aWxsIHdhaXQgZm9yIGFjdGlvbnMgdG8gY29tcGxldGUuXHJcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIGluY2x1ZGVzIHRoZSBgb3BlbmAgY29tbWFuZCwgYHdhaXRGb3IqYCBjb21tYW5kcywgYW5kIGNvbW1hbmRzIHdoaWNoIHdhaXRcclxuICogICAgICAgICAgICAgIGZvciBlbGVtZW50cyB0byBhcHBlYXIgaW4gRE9NIG9yIGJlY29tZSB2aXNpYmxlIGJlZm9yZSBvcGVyYXRpbmcgb24gdGhlbS4gIFxyXG4gKiAgICAgICAgICAgICAgSWYgY29tbWFuZCB3YXNuJ3QgYWJsZSB0byBjb21wbGV0ZSB3aXRoaW4gdGhlIHNwZWNpZmllZCBwZXJpb2QgaXQgd2lsbCBmYWlsIHRoZVxyXG4gKiAgICAgICAgICAgICAgdGVzdC4gIFxyXG4gKiAgICAgICAgICAgICAgVGhlIGRlZmF1bHQgdGltZS1vdXQgaXMgNjAgc2Vjb25kcy5cclxuICogQGZ1bmN0aW9uIHNldFRpbWVvdXRcclxuICogQGZvciBhbmRyb2lkLCBpb3MsIGh5YnJpZCwgd2ViXHJcbiAqIEBwYXJhbSB7TnVtYmVyfSB0aW1lb3V0IC0gQSB0aW1lLW91dCBpbiBtaWxsaXNlY29uZHMuXHJcbiAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gKiBtb2IuaW5pdCgpOy8vT3BlbnMgYnJvd3NlciBzZXNzaW9uLlxyXG4gKiBtb2Iuc2V0VGltZW91dCg2MDAwMCk7Ly9TZXRzIHRoZSB0aW1lIG91dCB0byBhbW91bnQgb2YgbWlsbGlzZWNvbmRzIC5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gYXN5bmMgZnVuY3Rpb24odGltZW91dCkge1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuICAgIHRoaXMud2FpdEZvclRpbWVvdXQgPSB0aW1lb3V0O1xyXG4gICAgYXdhaXQgdGhpcy5oZWxwZXJzLnNldFRpbWVvdXRJbXBsaWNpdCh0aW1lb3V0KTtcclxufTtcclxuIl19
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("source-map-support/register");
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU General Public License as published by
|
|
10
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
* (at your option) any later version.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @summary Sets context to the first available WEBVIEW or CHROMIUM (Crosswalk WebView) view.
|
|
16
|
-
* @function setWebViewContext
|
|
17
|
-
* @return {String} Context name, or null if no web context found.
|
|
18
|
-
* @for android, ios, hybrid, web
|
|
19
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
20
|
-
* mob.init(caps);//Starts a mobile session and opens app from desired capabilities
|
|
21
|
-
* mob.setWebViewContext();//Sets context to the first available WEBVIEW or CHROMIUM (Crosswalk WebView) view.
|
|
22
|
-
*/
|
|
23
|
-
module.exports = async function () {
|
|
24
|
-
var contexts = await this.driver.getContexts(); // select first available WEBVIEW context
|
|
25
|
-
|
|
26
|
-
for (var i = 0; i < contexts.length; i++) {
|
|
27
|
-
var context = contexts[i];
|
|
28
|
-
|
|
29
|
-
if (context && (context.indexOf('WEBVIEW') > -1 || context.indexOf('CHROMIUM') > -1)) {
|
|
30
|
-
this.logger.debug('Setting context: ' + context);
|
|
31
|
-
await this.driver.switchContext(context);
|
|
32
|
-
this.appContext = context;
|
|
33
|
-
return context;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return null;
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc2V0V2ViVmlld0NvbnRleHQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImNvbnRleHRzIiwiZHJpdmVyIiwiZ2V0Q29udGV4dHMiLCJpIiwibGVuZ3RoIiwiY29udGV4dCIsImluZGV4T2YiLCJsb2dnZXIiLCJkZWJ1ZyIsInN3aXRjaENvbnRleHQiLCJhcHBDb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLGtCQUFpQjtBQUM5QixNQUFJQyxRQUFRLEdBQUcsTUFBTSxLQUFLQyxNQUFMLENBQVlDLFdBQVosRUFBckIsQ0FEOEIsQ0FFOUI7O0FBQ0EsT0FBSyxJQUFJQyxDQUFDLEdBQUMsQ0FBWCxFQUFjQSxDQUFDLEdBQUdILFFBQVEsQ0FBQ0ksTUFBM0IsRUFBbUNELENBQUMsRUFBcEMsRUFBd0M7QUFDcEMsUUFBSUUsT0FBTyxHQUFHTCxRQUFRLENBQUNHLENBQUQsQ0FBdEI7O0FBQ0EsUUFBSUUsT0FBTyxLQUFLQSxPQUFPLENBQUNDLE9BQVIsQ0FBZ0IsU0FBaEIsSUFBNkIsQ0FBQyxDQUE5QixJQUFtQ0QsT0FBTyxDQUFDQyxPQUFSLENBQWdCLFVBQWhCLElBQThCLENBQUMsQ0FBdkUsQ0FBWCxFQUFzRjtBQUNsRixXQUFLQyxNQUFMLENBQVlDLEtBQVosQ0FBa0Isc0JBQXNCSCxPQUF4QztBQUNBLFlBQU0sS0FBS0osTUFBTCxDQUFZUSxhQUFaLENBQTBCSixPQUExQixDQUFOO0FBQ0EsV0FBS0ssVUFBTCxHQUFrQkwsT0FBbEI7QUFDQSxhQUFPQSxPQUFQO0FBQ0g7QUFDSjs7QUFDRCxTQUFPLElBQVA7QUFDSCxDQWJEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQHN1bW1hcnkgU2V0cyBjb250ZXh0IHRvIHRoZSBmaXJzdCBhdmFpbGFibGUgV0VCVklFVyBvciBDSFJPTUlVTSAoQ3Jvc3N3YWxrIFdlYlZpZXcpIHZpZXcuXHJcbiAqIEBmdW5jdGlvbiBzZXRXZWJWaWV3Q29udGV4dFxyXG4gKiBAcmV0dXJuIHtTdHJpbmd9IENvbnRleHQgbmFtZSwgb3IgbnVsbCBpZiBubyB3ZWIgY29udGV4dCBmb3VuZC5cclxuICogQGZvciBhbmRyb2lkLCBpb3MsIGh5YnJpZCwgd2ViXHJcbiAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gKiBtb2IuaW5pdChjYXBzKTsvL1N0YXJ0cyBhIG1vYmlsZSBzZXNzaW9uIGFuZCBvcGVucyBhcHAgZnJvbSBkZXNpcmVkIGNhcGFiaWxpdGllc1xyXG4gKiBtb2Iuc2V0V2ViVmlld0NvbnRleHQoKTsvL1NldHMgY29udGV4dCB0byB0aGUgZmlyc3QgYXZhaWxhYmxlIFdFQlZJRVcgb3IgQ0hST01JVU0gKENyb3Nzd2FsayBXZWJWaWV3KSB2aWV3LlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbigpIHtcclxuICAgIHZhciBjb250ZXh0cyA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldENvbnRleHRzKCk7XHJcbiAgICAvLyBzZWxlY3QgZmlyc3QgYXZhaWxhYmxlIFdFQlZJRVcgY29udGV4dFxyXG4gICAgZm9yICh2YXIgaT0wOyBpIDwgY29udGV4dHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgY29udGV4dCA9IGNvbnRleHRzW2ldO1xyXG4gICAgICAgIGlmIChjb250ZXh0ICYmIChjb250ZXh0LmluZGV4T2YoJ1dFQlZJRVcnKSA+IC0xIHx8IGNvbnRleHQuaW5kZXhPZignQ0hST01JVU0nKSA+IC0xKSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0dGluZyBjb250ZXh0OiAnICsgY29udGV4dCk7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaENvbnRleHQoY29udGV4dCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwQ29udGV4dCA9IGNvbnRleHQ7XHJcbiAgICAgICAgICAgIHJldHVybiBjb250ZXh0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59O1xyXG4iXX0=
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("source-map-support/register");
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU General Public License as published by
|
|
10
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
* (at your option) any later version.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @summary Perform shake action on the device
|
|
16
|
-
* @description Supported on Android and iOS 9 or earlier versions.
|
|
17
|
-
* @function shake
|
|
18
|
-
* @for ios
|
|
19
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
20
|
-
* mob.init(caps);//Starts a mobile session and opens app from desired capabilities
|
|
21
|
-
* mob.shake();//Perform shake action on the device.
|
|
22
|
-
*/
|
|
23
|
-
module.exports = async function () {
|
|
24
|
-
await this.helpers.assertContext(this.helpers.contextList.ios);
|
|
25
|
-
await this.driver.shake();
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc2hha2UuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImhlbHBlcnMiLCJhc3NlcnRDb250ZXh0IiwiY29udGV4dExpc3QiLCJpb3MiLCJkcml2ZXIiLCJzaGFrZSJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixrQkFBaUI7QUFDOUIsUUFBTSxLQUFLQyxPQUFMLENBQWFDLGFBQWIsQ0FBMkIsS0FBS0QsT0FBTCxDQUFhRSxXQUFiLENBQXlCQyxHQUFwRCxDQUFOO0FBQ0EsUUFBTSxLQUFLQyxNQUFMLENBQVlDLEtBQVosRUFBTjtBQUNILENBSEQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBQZXJmb3JtIHNoYWtlIGFjdGlvbiBvbiB0aGUgZGV2aWNlXHJcbiAqIEBkZXNjcmlwdGlvbiBTdXBwb3J0ZWQgb24gQW5kcm9pZCBhbmQgaU9TIDkgb3IgZWFybGllciB2ZXJzaW9ucy4gXHJcbiAqIEBmdW5jdGlvbiBzaGFrZVxyXG4gKiBAZm9yIGlvc1xyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogbW9iLmluaXQoY2Fwcyk7Ly9TdGFydHMgYSBtb2JpbGUgc2Vzc2lvbiBhbmQgb3BlbnMgYXBwIGZyb20gZGVzaXJlZCBjYXBhYmlsaXRpZXNcclxuICogbW9iLnNoYWtlKCk7Ly9QZXJmb3JtIHNoYWtlIGFjdGlvbiBvbiB0aGUgZGV2aWNlLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbigpIHtcclxuICAgIGF3YWl0IHRoaXMuaGVscGVycy5hc3NlcnRDb250ZXh0KHRoaXMuaGVscGVycy5jb250ZXh0TGlzdC5pb3MpO1xyXG4gICAgYXdhaXQgdGhpcy5kcml2ZXIuc2hha2UoKTtcclxufTtcclxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("source-map-support/register");
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU General Public License as published by
|
|
10
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
* (at your option) any later version.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @summary Clicks SMS message URL.
|
|
16
|
-
* @description `SMSPopup` application must be installed and running on the device to use this command.
|
|
17
|
-
* https://github.com/oxygenhq/android-smspopup/releases
|
|
18
|
-
* @function smsClickLink
|
|
19
|
-
* @param {Number=} timeout - Time in milliseconds to wait for sms popup. Default is 60 seconds.
|
|
20
|
-
* @for android
|
|
21
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
22
|
-
* mob.init(caps);//Starts a mobile session and opens app from desired capabilities
|
|
23
|
-
* mob.click("id=sendSmS");// Clicks an element.
|
|
24
|
-
* mob.smsClickLink(60000);//Clicks SMS message URL.
|
|
25
|
-
*/
|
|
26
|
-
module.exports = async function (timeout) {
|
|
27
|
-
await this.helpers.assertContext(this.helpers.contextList.android);
|
|
28
|
-
this.helpers.assertArgumentTimeout(timeout, 'timeout');
|
|
29
|
-
await this.waitForExist('id=android:id/message', timeout);
|
|
30
|
-
await this.click('id=android:id/button1');
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc21zQ2xpY2tMaW5rLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJ0aW1lb3V0IiwiaGVscGVycyIsImFzc2VydENvbnRleHQiLCJjb250ZXh0TGlzdCIsImFuZHJvaWQiLCJhc3NlcnRBcmd1bWVudFRpbWVvdXQiLCJ3YWl0Rm9yRXhpc3QiLCJjbGljayJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsT0FBZixFQUF3QjtBQUNyQyxRQUFNLEtBQUtDLE9BQUwsQ0FBYUMsYUFBYixDQUEyQixLQUFLRCxPQUFMLENBQWFFLFdBQWIsQ0FBeUJDLE9BQXBELENBQU47QUFDQSxPQUFLSCxPQUFMLENBQWFJLHFCQUFiLENBQW1DTCxPQUFuQyxFQUE0QyxTQUE1QztBQUNBLFFBQU0sS0FBS00sWUFBTCxDQUFrQix1QkFBbEIsRUFBMkNOLE9BQTNDLENBQU47QUFDQSxRQUFNLEtBQUtPLEtBQUwsQ0FBVyx1QkFBWCxDQUFOO0FBQ0gsQ0FMRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IENsaWNrcyBTTVMgbWVzc2FnZSBVUkwuXHJcbiAqIEBkZXNjcmlwdGlvbiBgU01TUG9wdXBgIGFwcGxpY2F0aW9uIG11c3QgYmUgaW5zdGFsbGVkIGFuZCBydW5uaW5nIG9uIHRoZSBkZXZpY2UgdG8gdXNlIHRoaXMgY29tbWFuZC5cclxuICogICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9veHlnZW5ocS9hbmRyb2lkLXNtc3BvcHVwL3JlbGVhc2VzXHJcbiAqIEBmdW5jdGlvbiBzbXNDbGlja0xpbmtcclxuICogQHBhcmFtIHtOdW1iZXI9fSB0aW1lb3V0IC0gVGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3Igc21zIHBvcHVwLiBEZWZhdWx0IGlzIDYwIHNlY29uZHMuXHJcbiAqIEBmb3IgYW5kcm9pZFxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogbW9iLmluaXQoY2Fwcyk7Ly9TdGFydHMgYSBtb2JpbGUgc2Vzc2lvbiBhbmQgb3BlbnMgYXBwIGZyb20gZGVzaXJlZCBjYXBhYmlsaXRpZXNcclxuICogbW9iLmNsaWNrKFwiaWQ9c2VuZFNtU1wiKTsvLyBDbGlja3MgYW4gZWxlbWVudC5cclxuICogbW9iLnNtc0NsaWNrTGluayg2MDAwMCk7Ly9DbGlja3MgU01TIG1lc3NhZ2UgVVJMLlxyXG4qL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKHRpbWVvdXQpIHtcclxuICAgIGF3YWl0IHRoaXMuaGVscGVycy5hc3NlcnRDb250ZXh0KHRoaXMuaGVscGVycy5jb250ZXh0TGlzdC5hbmRyb2lkKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuICAgIGF3YWl0IHRoaXMud2FpdEZvckV4aXN0KCdpZD1hbmRyb2lkOmlkL21lc3NhZ2UnLCB0aW1lb3V0KTtcclxuICAgIGF3YWl0IHRoaXMuY2xpY2soJ2lkPWFuZHJvaWQ6aWQvYnV0dG9uMScpO1xyXG59O1xyXG4iXX0=
|