appium-xcuitest-driver 10.17.1 → 10.18.1
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 +12 -0
- package/build/lib/device/real-device-management.d.ts +3 -3
- package/build/lib/device/real-device-management.d.ts.map +1 -1
- package/build/lib/device/real-device-management.js +6 -8
- package/build/lib/device/real-device-management.js.map +1 -1
- package/build/lib/driver.js +1 -1
- package/build/lib/driver.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/device/real-device-management.ts +7 -9
- package/lib/driver.ts +1 -1
- package/npm-shrinkwrap.json +59 -16
- package/package.json +3 -2
- package/build/test/functional/basic/alert-e2e-specs.d.ts +0 -2
- package/build/test/functional/basic/alert-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/basic/alert-e2e-specs.js +0 -129
- package/build/test/functional/basic/alert-e2e-specs.js.map +0 -1
- package/build/test/functional/basic/basic-e2e-specs.d.ts +0 -2
- package/build/test/functional/basic/basic-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/basic/basic-e2e-specs.js +0 -268
- package/build/test/functional/basic/basic-e2e-specs.js.map +0 -1
- package/build/test/functional/basic/element-e2e-specs.d.ts +0 -2
- package/build/test/functional/basic/element-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/basic/element-e2e-specs.js +0 -354
- package/build/test/functional/basic/element-e2e-specs.js.map +0 -1
- package/build/test/functional/basic/find-e2e-specs.d.ts +0 -2
- package/build/test/functional/basic/find-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/basic/find-e2e-specs.js +0 -434
- package/build/test/functional/basic/find-e2e-specs.js.map +0 -1
- package/build/test/functional/basic/gesture-e2e-specs.d.ts +0 -2
- package/build/test/functional/basic/gesture-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/basic/gesture-e2e-specs.js +0 -211
- package/build/test/functional/basic/gesture-e2e-specs.js.map +0 -1
- package/build/test/functional/desired.d.ts +0 -26
- package/build/test/functional/desired.d.ts.map +0 -1
- package/build/test/functional/desired.js +0 -124
- package/build/test/functional/desired.js.map +0 -1
- package/build/test/functional/device/accessibility-e2e-specs.d.ts +0 -2
- package/build/test/functional/device/accessibility-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/device/accessibility-e2e-specs.js +0 -117
- package/build/test/functional/device/accessibility-e2e-specs.js.map +0 -1
- package/build/test/functional/device/file-movement-e2e-specs.d.ts +0 -2
- package/build/test/functional/device/file-movement-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/device/file-movement-e2e-specs.js +0 -141
- package/build/test/functional/device/file-movement-e2e-specs.js.map +0 -1
- package/build/test/functional/device/otherApps-e2e-specs.d.ts +0 -2
- package/build/test/functional/device/otherApps-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/device/otherApps-e2e-specs.js +0 -66
- package/build/test/functional/device/otherApps-e2e-specs.js.map +0 -1
- package/build/test/functional/device/passwords-e2e-specs.d.ts +0 -2
- package/build/test/functional/device/passwords-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/device/passwords-e2e-specs.js +0 -91
- package/build/test/functional/device/passwords-e2e-specs.js.map +0 -1
- package/build/test/functional/device/performance-e2e-specs.d.ts +0 -2
- package/build/test/functional/device/performance-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/device/performance-e2e-specs.js +0 -72
- package/build/test/functional/device/performance-e2e-specs.js.map +0 -1
- package/build/test/functional/driver/driver-e2e-specs.d.ts +0 -2
- package/build/test/functional/driver/driver-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/driver/driver-e2e-specs.js +0 -296
- package/build/test/functional/driver/driver-e2e-specs.js.map +0 -1
- package/build/test/functional/helpers/element.d.ts +0 -4
- package/build/test/functional/helpers/element.d.ts.map +0 -1
- package/build/test/functional/helpers/element.js +0 -8
- package/build/test/functional/helpers/element.js.map +0 -1
- package/build/test/functional/helpers/ports.d.ts +0 -6
- package/build/test/functional/helpers/ports.d.ts.map +0 -1
- package/build/test/functional/helpers/ports.js +0 -29
- package/build/test/functional/helpers/ports.js.map +0 -1
- package/build/test/functional/helpers/session.d.ts +0 -7
- package/build/test/functional/helpers/session.d.ts.map +0 -1
- package/build/test/functional/helpers/session.js +0 -39
- package/build/test/functional/helpers/session.js.map +0 -1
- package/build/test/functional/helpers/simulator.d.ts +0 -12
- package/build/test/functional/helpers/simulator.d.ts.map +0 -1
- package/build/test/functional/helpers/simulator.js +0 -51
- package/build/test/functional/helpers/simulator.js.map +0 -1
- package/build/test/functional/long/typing-stress-e2e-specs.d.ts +0 -2
- package/build/test/functional/long/typing-stress-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/long/typing-stress-e2e-specs.js +0 -84
- package/build/test/functional/long/typing-stress-e2e-specs.js.map +0 -1
- package/build/test/functional/tv/tvos-e2e-specs.d.ts +0 -2
- package/build/test/functional/tv/tvos-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/tv/tvos-e2e-specs.js +0 -83
- package/build/test/functional/tv/tvos-e2e-specs.js.map +0 -1
- package/build/test/functional/web/helpers.d.ts +0 -28
- package/build/test/functional/web/helpers.d.ts.map +0 -1
- package/build/test/functional/web/helpers.js +0 -137
- package/build/test/functional/web/helpers.js.map +0 -1
- package/build/test/functional/web/safari-alerts-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-alerts-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-alerts-e2e-specs.js +0 -109
- package/build/test/functional/web/safari-alerts-e2e-specs.js.map +0 -1
- package/build/test/functional/web/safari-basic-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-basic-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-basic-e2e-specs.js +0 -425
- package/build/test/functional/web/safari-basic-e2e-specs.js.map +0 -1
- package/build/test/functional/web/safari-execute-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-execute-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-execute-e2e-specs.js +0 -167
- package/build/test/functional/web/safari-execute-e2e-specs.js.map +0 -1
- package/build/test/functional/web/safari-nativewebtap-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-nativewebtap-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-nativewebtap-e2e-specs.js +0 -323
- package/build/test/functional/web/safari-nativewebtap-e2e-specs.js.map +0 -1
- package/build/test/functional/web/safari-ssl-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-ssl-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-ssl-e2e-specs.js +0 -131
- package/build/test/functional/web/safari-ssl-e2e-specs.js.map +0 -1
- package/build/test/functional/web/safari-window-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-window-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-window-e2e-specs.js +0 -263
- package/build/test/functional/web/safari-window-e2e-specs.js.map +0 -1
- package/build/test/setup.d.ts +0 -19
- package/build/test/setup.d.ts.map +0 -1
- package/build/test/setup.js +0 -117
- package/build/test/setup.js.map +0 -1
- package/build/test/unit/app-infos-cache-specs.d.ts +0 -2
- package/build/test/unit/app-infos-cache-specs.d.ts.map +0 -1
- package/build/test/unit/app-infos-cache-specs.js +0 -101
- package/build/test/unit/app-infos-cache-specs.js.map +0 -1
- package/build/test/unit/app-utils-specs.d.ts +0 -2
- package/build/test/unit/app-utils-specs.d.ts.map +0 -1
- package/build/test/unit/app-utils-specs.js +0 -131
- package/build/test/unit/app-utils-specs.js.map +0 -1
- package/build/test/unit/commands/activeAppInfo-specs.d.ts +0 -2
- package/build/test/unit/commands/activeAppInfo-specs.d.ts.map +0 -1
- package/build/test/unit/commands/activeAppInfo-specs.js +0 -74
- package/build/test/unit/commands/activeAppInfo-specs.js.map +0 -1
- package/build/test/unit/commands/alert-specs.d.ts +0 -2
- package/build/test/unit/commands/alert-specs.d.ts.map +0 -1
- package/build/test/unit/commands/alert-specs.js +0 -111
- package/build/test/unit/commands/alert-specs.js.map +0 -1
- package/build/test/unit/commands/context-specs.d.ts +0 -2
- package/build/test/unit/commands/context-specs.d.ts.map +0 -1
- package/build/test/unit/commands/context-specs.js +0 -119
- package/build/test/unit/commands/context-specs.js.map +0 -1
- package/build/test/unit/commands/deviceinfo-specs.d.ts +0 -2
- package/build/test/unit/commands/deviceinfo-specs.d.ts.map +0 -1
- package/build/test/unit/commands/deviceinfo-specs.js +0 -67
- package/build/test/unit/commands/deviceinfo-specs.js.map +0 -1
- package/build/test/unit/commands/element-specs.d.ts +0 -2
- package/build/test/unit/commands/element-specs.d.ts.map +0 -1
- package/build/test/unit/commands/element-specs.js +0 -419
- package/build/test/unit/commands/element-specs.js.map +0 -1
- package/build/test/unit/commands/file-movement-specs.d.ts +0 -2
- package/build/test/unit/commands/file-movement-specs.d.ts.map +0 -1
- package/build/test/unit/commands/file-movement-specs.js +0 -81
- package/build/test/unit/commands/file-movement-specs.js.map +0 -1
- package/build/test/unit/commands/find-specs.d.ts +0 -2
- package/build/test/unit/commands/find-specs.d.ts.map +0 -1
- package/build/test/unit/commands/find-specs.js +0 -106
- package/build/test/unit/commands/find-specs.js.map +0 -1
- package/build/test/unit/commands/general-specs.d.ts +0 -2
- package/build/test/unit/commands/general-specs.d.ts.map +0 -1
- package/build/test/unit/commands/general-specs.js +0 -154
- package/build/test/unit/commands/general-specs.js.map +0 -1
- package/build/test/unit/commands/gesture-specs.d.ts +0 -2
- package/build/test/unit/commands/gesture-specs.d.ts.map +0 -1
- package/build/test/unit/commands/gesture-specs.js +0 -263
- package/build/test/unit/commands/gesture-specs.js.map +0 -1
- package/build/test/unit/commands/location-specs.d.ts +0 -2
- package/build/test/unit/commands/location-specs.d.ts.map +0 -1
- package/build/test/unit/commands/location-specs.js +0 -141
- package/build/test/unit/commands/location-specs.js.map +0 -1
- package/build/test/unit/commands/pasteboard-specs.d.ts +0 -2
- package/build/test/unit/commands/pasteboard-specs.d.ts.map +0 -1
- package/build/test/unit/commands/pasteboard-specs.js +0 -65
- package/build/test/unit/commands/pasteboard-specs.js.map +0 -1
- package/build/test/unit/commands/proxy-helper-specs.d.ts +0 -2
- package/build/test/unit/commands/proxy-helper-specs.d.ts.map +0 -1
- package/build/test/unit/commands/proxy-helper-specs.js +0 -88
- package/build/test/unit/commands/proxy-helper-specs.js.map +0 -1
- package/build/test/unit/commands/screenshots-specs.d.ts +0 -2
- package/build/test/unit/commands/screenshots-specs.d.ts.map +0 -1
- package/build/test/unit/commands/screenshots-specs.js +0 -71
- package/build/test/unit/commands/screenshots-specs.js.map +0 -1
- package/build/test/unit/commands/session-specs.d.ts +0 -2
- package/build/test/unit/commands/session-specs.d.ts.map +0 -1
- package/build/test/unit/commands/session-specs.js +0 -49
- package/build/test/unit/commands/session-specs.js.map +0 -1
- package/build/test/unit/commands/simctl-specs.d.ts +0 -2
- package/build/test/unit/commands/simctl-specs.d.ts.map +0 -1
- package/build/test/unit/commands/simctl-specs.js +0 -54
- package/build/test/unit/commands/simctl-specs.js.map +0 -1
- package/build/test/unit/commands/source-specs.d.ts +0 -2
- package/build/test/unit/commands/source-specs.d.ts.map +0 -1
- package/build/test/unit/commands/source-specs.js +0 -55
- package/build/test/unit/commands/source-specs.js.map +0 -1
- package/build/test/unit/commands/ssl-certificate-specs.d.ts +0 -2
- package/build/test/unit/commands/ssl-certificate-specs.d.ts.map +0 -1
- package/build/test/unit/commands/ssl-certificate-specs.js +0 -16
- package/build/test/unit/commands/ssl-certificate-specs.js.map +0 -1
- package/build/test/unit/commands/xctest-specs.d.ts +0 -2
- package/build/test/unit/commands/xctest-specs.d.ts.map +0 -1
- package/build/test/unit/commands/xctest-specs.js +0 -116
- package/build/test/unit/commands/xctest-specs.js.map +0 -1
- package/build/test/unit/css-converter-specs.d.ts +0 -2
- package/build/test/unit/css-converter-specs.d.ts.map +0 -1
- package/build/test/unit/css-converter-specs.js +0 -99
- package/build/test/unit/css-converter-specs.js.map +0 -1
- package/build/test/unit/device-connections-factory-specs.d.ts +0 -2
- package/build/test/unit/device-connections-factory-specs.d.ts.map +0 -1
- package/build/test/unit/device-connections-factory-specs.js +0 -88
- package/build/test/unit/device-connections-factory-specs.js.map +0 -1
- package/build/test/unit/driver-specs.d.ts +0 -2
- package/build/test/unit/driver-specs.d.ts.map +0 -1
- package/build/test/unit/driver-specs.js +0 -358
- package/build/test/unit/driver-specs.js.map +0 -1
- package/build/test/unit/helpers.d.ts +0 -2
- package/build/test/unit/helpers.d.ts.map +0 -1
- package/build/test/unit/helpers.js +0 -5
- package/build/test/unit/helpers.js.map +0 -1
- package/build/test/unit/language-specs.d.ts +0 -2
- package/build/test/unit/language-specs.d.ts.map +0 -1
- package/build/test/unit/language-specs.js +0 -159
- package/build/test/unit/language-specs.js.map +0 -1
- package/build/test/unit/logs-helpers-specs.d.ts +0 -2
- package/build/test/unit/logs-helpers-specs.d.ts.map +0 -1
- package/build/test/unit/logs-helpers-specs.js +0 -71
- package/build/test/unit/logs-helpers-specs.js.map +0 -1
- package/build/test/unit/processargs-specs.d.ts +0 -2
- package/build/test/unit/processargs-specs.d.ts.map +0 -1
- package/build/test/unit/processargs-specs.js +0 -87
- package/build/test/unit/processargs-specs.js.map +0 -1
- package/build/test/unit/real-device-management-specs.d.ts +0 -2
- package/build/test/unit/real-device-management-specs.d.ts.map +0 -1
- package/build/test/unit/real-device-management-specs.js +0 -151
- package/build/test/unit/real-device-management-specs.js.map +0 -1
- package/build/test/unit/simulator-management-specs.d.ts +0 -2
- package/build/test/unit/simulator-management-specs.d.ts.map +0 -1
- package/build/test/unit/simulator-management-specs.js +0 -143
- package/build/test/unit/simulator-management-specs.js.map +0 -1
- package/build/test/unit/utils-specs.d.ts +0 -2
- package/build/test/unit/utils-specs.d.ts.map +0 -1
- package/build/test/unit/utils-specs.js +0 -132
- package/build/test/unit/utils-specs.js.map +0 -1
|
@@ -7,8 +7,9 @@ import {buildSafariPreferences, SAFARI_BUNDLE_ID} from '../app-utils';
|
|
|
7
7
|
import {log as defaultLogger} from '../logger';
|
|
8
8
|
import { Devicectl } from 'node-devicectl';
|
|
9
9
|
import type { AppiumLogger } from '@appium/types';
|
|
10
|
-
import type { XCUITestDriver } from '../driver';
|
|
10
|
+
import type { XCUITestDriver, XCUITestDriverOpts } from '../driver';
|
|
11
11
|
import {AfcClient} from './afc-client';
|
|
12
|
+
import {isIos18OrNewer} from '../utils';
|
|
12
13
|
|
|
13
14
|
const DEFAULT_APP_INSTALLATION_TIMEOUT_MS = 8 * 60 * 1000;
|
|
14
15
|
export const IO_TIMEOUT_MS = 4 * 60 * 1000;
|
|
@@ -264,10 +265,11 @@ export class RealDevice {
|
|
|
264
265
|
readonly udid: string;
|
|
265
266
|
private readonly _log: AppiumLogger;
|
|
266
267
|
readonly devicectl: Devicectl;
|
|
267
|
-
|
|
268
|
+
readonly driverOpts: XCUITestDriverOpts;
|
|
268
269
|
|
|
269
|
-
constructor(udid: string, logger?: AppiumLogger) {
|
|
270
|
+
constructor(udid: string, driverOpts: XCUITestDriverOpts, logger?: AppiumLogger) {
|
|
270
271
|
this.udid = udid;
|
|
272
|
+
this.driverOpts = driverOpts;
|
|
271
273
|
this._log = logger ?? defaultLogger;
|
|
272
274
|
this.devicectl = new Devicectl(this.udid);
|
|
273
275
|
}
|
|
@@ -294,8 +296,7 @@ export class RealDevice {
|
|
|
294
296
|
timeoutMs = IO_TIMEOUT_MS,
|
|
295
297
|
} = opts;
|
|
296
298
|
const timer = new timing.Timer().start();
|
|
297
|
-
const
|
|
298
|
-
const useRemoteXPC = !!platformVersion && util.compareVersions(platformVersion, '>=', '18.0');
|
|
299
|
+
const useRemoteXPC = isIos18OrNewer(this.driverOpts);
|
|
299
300
|
const afcClient = await AfcClient.createForDevice(this.udid, useRemoteXPC);
|
|
300
301
|
try {
|
|
301
302
|
let bundlePathOnPhone: string;
|
|
@@ -516,10 +517,7 @@ export class RealDevice {
|
|
|
516
517
|
}
|
|
517
518
|
|
|
518
519
|
async getPlatformVersion(): Promise<string> {
|
|
519
|
-
|
|
520
|
-
this.platformVersion = await utilities.getOSVersion(this.udid) as string;
|
|
521
|
-
}
|
|
522
|
-
return this.platformVersion;
|
|
520
|
+
return await utilities.getOSVersion(this.udid);
|
|
523
521
|
}
|
|
524
522
|
|
|
525
523
|
async reset(opts: {bundleId?: string; fullReset?: boolean}): Promise<void> {
|
package/lib/driver.ts
CHANGED
|
@@ -1362,7 +1362,7 @@ export class XCUITestDriver
|
|
|
1362
1362
|
}
|
|
1363
1363
|
|
|
1364
1364
|
this.log.debug(`Creating iDevice object with udid '${this.opts.udid}'`);
|
|
1365
|
-
const device = new RealDevice(this.opts.udid as string, this.log);
|
|
1365
|
+
const device = new RealDevice(this.opts.udid as string, this.opts, this.log);
|
|
1366
1366
|
return {device, realDevice: true, udid: this.opts.udid as string};
|
|
1367
1367
|
}
|
|
1368
1368
|
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-xcuitest-driver",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.18.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "appium-xcuitest-driver",
|
|
9
|
-
"version": "10.
|
|
9
|
+
"version": "10.18.1",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@appium/strongbox": "^1.0.0-rc.1",
|
|
@@ -122,6 +122,12 @@
|
|
|
122
122
|
"node": ">=16"
|
|
123
123
|
}
|
|
124
124
|
},
|
|
125
|
+
"node_modules/@appium/base-driver/node_modules/lodash": {
|
|
126
|
+
"version": "4.17.21",
|
|
127
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
128
|
+
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
|
129
|
+
"license": "MIT"
|
|
130
|
+
},
|
|
125
131
|
"node_modules/@appium/base-plugin": {
|
|
126
132
|
"version": "3.0.5",
|
|
127
133
|
"resolved": "https://registry.npmjs.org/@appium/base-plugin/-/base-plugin-3.0.5.tgz",
|
|
@@ -165,6 +171,12 @@
|
|
|
165
171
|
"npm": ">=10"
|
|
166
172
|
}
|
|
167
173
|
},
|
|
174
|
+
"node_modules/@appium/docutils/node_modules/lodash": {
|
|
175
|
+
"version": "4.17.21",
|
|
176
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
177
|
+
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
|
178
|
+
"license": "MIT"
|
|
179
|
+
},
|
|
168
180
|
"node_modules/@appium/docutils/node_modules/teen_process": {
|
|
169
181
|
"version": "3.0.4",
|
|
170
182
|
"resolved": "https://registry.npmjs.org/teen_process/-/teen_process-3.0.4.tgz",
|
|
@@ -197,6 +209,12 @@
|
|
|
197
209
|
"npm": ">=10"
|
|
198
210
|
}
|
|
199
211
|
},
|
|
212
|
+
"node_modules/@appium/logger/node_modules/lodash": {
|
|
213
|
+
"version": "4.17.21",
|
|
214
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
215
|
+
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
|
216
|
+
"license": "MIT"
|
|
217
|
+
},
|
|
200
218
|
"node_modules/@appium/schema": {
|
|
201
219
|
"version": "1.0.0",
|
|
202
220
|
"resolved": "https://registry.npmjs.org/@appium/schema/-/schema-1.0.0.tgz",
|
|
@@ -275,6 +293,12 @@
|
|
|
275
293
|
"sharp": "0.34.5"
|
|
276
294
|
}
|
|
277
295
|
},
|
|
296
|
+
"node_modules/@appium/support/node_modules/lodash": {
|
|
297
|
+
"version": "4.17.21",
|
|
298
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
299
|
+
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
|
300
|
+
"license": "MIT"
|
|
301
|
+
},
|
|
278
302
|
"node_modules/@appium/support/node_modules/teen_process": {
|
|
279
303
|
"version": "3.0.4",
|
|
280
304
|
"resolved": "https://registry.npmjs.org/teen_process/-/teen_process-3.0.4.tgz",
|
|
@@ -752,16 +776,16 @@
|
|
|
752
776
|
}
|
|
753
777
|
},
|
|
754
778
|
"node_modules/appium-remote-debugger": {
|
|
755
|
-
"version": "15.2.
|
|
756
|
-
"resolved": "https://registry.npmjs.org/appium-remote-debugger/-/appium-remote-debugger-15.2.
|
|
757
|
-
"integrity": "sha512-
|
|
779
|
+
"version": "15.2.13",
|
|
780
|
+
"resolved": "https://registry.npmjs.org/appium-remote-debugger/-/appium-remote-debugger-15.2.13.tgz",
|
|
781
|
+
"integrity": "sha512-tXFTHp+fUR13cjJH/O7gd1PPm+jsWAvfFQSJuSdoRzwF3EanP2l+EetCG0gyiSWHQ01T97iRHKlKeqYG8BeHPw==",
|
|
758
782
|
"license": "Apache-2.0",
|
|
759
783
|
"dependencies": {
|
|
760
784
|
"@appium/base-driver": "^10.0.0-rc.1",
|
|
761
785
|
"@appium/support": "^7.0.0-rc.1",
|
|
762
786
|
"appium-ios-device": "^3.0.0",
|
|
763
787
|
"async-lock": "^1.4.1",
|
|
764
|
-
"asyncbox": "^
|
|
788
|
+
"asyncbox": "^5.0.0",
|
|
765
789
|
"bluebird": "^3.4.7",
|
|
766
790
|
"glob": "^13.0.0",
|
|
767
791
|
"lodash": "^4.17.11",
|
|
@@ -772,6 +796,20 @@
|
|
|
772
796
|
"npm": ">=10"
|
|
773
797
|
}
|
|
774
798
|
},
|
|
799
|
+
"node_modules/appium-remote-debugger/node_modules/asyncbox": {
|
|
800
|
+
"version": "5.0.0",
|
|
801
|
+
"resolved": "https://registry.npmjs.org/asyncbox/-/asyncbox-5.0.0.tgz",
|
|
802
|
+
"integrity": "sha512-F2D847Y1W4mJMBLvwN+1+l7dsS9uBq+Q9U3RqSih+zZ9d810/vMr0PXPF5OUGERtVVTXM6hVW80yFa3MXyIo7Q==",
|
|
803
|
+
"license": "Apache-2.0",
|
|
804
|
+
"dependencies": {
|
|
805
|
+
"bluebird": "^3.5.1",
|
|
806
|
+
"lodash": "^4.17.4"
|
|
807
|
+
},
|
|
808
|
+
"engines": {
|
|
809
|
+
"node": "^20.19.0 || ^22.12.0 || >=24.0.0",
|
|
810
|
+
"npm": ">=10"
|
|
811
|
+
}
|
|
812
|
+
},
|
|
775
813
|
"node_modules/appium-webdriveragent": {
|
|
776
814
|
"version": "11.1.1",
|
|
777
815
|
"resolved": "https://registry.npmjs.org/appium-webdriveragent/-/appium-webdriveragent-11.1.1.tgz",
|
|
@@ -828,6 +866,12 @@
|
|
|
828
866
|
"node": ">=16"
|
|
829
867
|
}
|
|
830
868
|
},
|
|
869
|
+
"node_modules/appium/node_modules/lodash": {
|
|
870
|
+
"version": "4.17.21",
|
|
871
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
872
|
+
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
|
873
|
+
"license": "MIT"
|
|
874
|
+
},
|
|
831
875
|
"node_modules/appium/node_modules/readable-stream": {
|
|
832
876
|
"version": "3.6.2",
|
|
833
877
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
|
@@ -2761,9 +2805,9 @@
|
|
|
2761
2805
|
}
|
|
2762
2806
|
},
|
|
2763
2807
|
"node_modules/lodash": {
|
|
2764
|
-
"version": "4.17.
|
|
2765
|
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.
|
|
2766
|
-
"integrity": "sha512-
|
|
2808
|
+
"version": "4.17.23",
|
|
2809
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
|
|
2810
|
+
"integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
|
|
2767
2811
|
"license": "MIT"
|
|
2768
2812
|
},
|
|
2769
2813
|
"node_modules/lodash.isfinite": {
|
|
@@ -3056,9 +3100,9 @@
|
|
|
3056
3100
|
}
|
|
3057
3101
|
},
|
|
3058
3102
|
"node_modules/node-devicectl": {
|
|
3059
|
-
"version": "1.1.
|
|
3060
|
-
"resolved": "https://registry.npmjs.org/node-devicectl/-/node-devicectl-1.1.
|
|
3061
|
-
"integrity": "sha512
|
|
3103
|
+
"version": "1.1.4",
|
|
3104
|
+
"resolved": "https://registry.npmjs.org/node-devicectl/-/node-devicectl-1.1.4.tgz",
|
|
3105
|
+
"integrity": "sha512-bTTJYu0/+bZE1O/isQqQN66j/sC5gfmI/9K8+3ZCH3p452oxDSE02cYN+aLxoytOELtcSW4MqbR7jQZCtuljLw==",
|
|
3062
3106
|
"license": "Apache-2.0",
|
|
3063
3107
|
"dependencies": {
|
|
3064
3108
|
"@appium/logger": "^2.0.0-rc.1",
|
|
@@ -4418,12 +4462,11 @@
|
|
|
4418
4462
|
}
|
|
4419
4463
|
},
|
|
4420
4464
|
"node_modules/teen_process": {
|
|
4421
|
-
"version": "4.0.
|
|
4422
|
-
"resolved": "https://registry.npmjs.org/teen_process/-/teen_process-4.0.
|
|
4423
|
-
"integrity": "sha512-
|
|
4465
|
+
"version": "4.0.8",
|
|
4466
|
+
"resolved": "https://registry.npmjs.org/teen_process/-/teen_process-4.0.8.tgz",
|
|
4467
|
+
"integrity": "sha512-0DTX2KfgVOr6+8TVmheEdiJHZ/bPOPeJuX0yvv5VOX3x+OFteNkmWkI+hX6zTkzxjddrktsrXkacfS2Gom1YyA==",
|
|
4424
4468
|
"license": "Apache-2.0",
|
|
4425
4469
|
"dependencies": {
|
|
4426
|
-
"bluebird": "^3.7.2",
|
|
4427
4470
|
"lodash": "^4.17.21",
|
|
4428
4471
|
"shell-quote": "^1.8.1"
|
|
4429
4472
|
},
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"xcuitest",
|
|
9
9
|
"xctest"
|
|
10
10
|
],
|
|
11
|
-
"version": "10.
|
|
11
|
+
"version": "10.18.1",
|
|
12
12
|
"author": "Appium Contributors",
|
|
13
13
|
"license": "Apache-2.0",
|
|
14
14
|
"repository": {
|
|
@@ -73,7 +73,8 @@
|
|
|
73
73
|
"!.DS_Store",
|
|
74
74
|
"CHANGELOG.md",
|
|
75
75
|
"LICENSE",
|
|
76
|
-
"npm-shrinkwrap.json"
|
|
76
|
+
"npm-shrinkwrap.json",
|
|
77
|
+
"!build/test"
|
|
77
78
|
],
|
|
78
79
|
"types": "./build/lib/index.d.ts",
|
|
79
80
|
"dependencies": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alert-e2e-specs.d.ts","sourceRoot":"","sources":["../../../../test/functional/basic/alert-e2e-specs.ts"],"names":[],"mappings":""}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const bluebird_1 = __importDefault(require("bluebird"));
|
|
40
|
-
const asyncbox_1 = require("asyncbox");
|
|
41
|
-
const desired_1 = require("../desired");
|
|
42
|
-
const session_1 = require("../helpers/session");
|
|
43
|
-
const chai_1 = __importStar(require("chai"));
|
|
44
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
45
|
-
chai_1.default.use(chai_as_promised_1.default);
|
|
46
|
-
describe('XCUITestDriver - alerts -', function () {
|
|
47
|
-
this.timeout(session_1.MOCHA_TIMEOUT);
|
|
48
|
-
let driver;
|
|
49
|
-
before(async function () {
|
|
50
|
-
const uiCatalogCaps = await (0, desired_1.getUICatalogCaps)();
|
|
51
|
-
driver = await (0, session_1.initSession)(uiCatalogCaps);
|
|
52
|
-
});
|
|
53
|
-
after(async function () {
|
|
54
|
-
await (0, session_1.deleteSession)();
|
|
55
|
-
});
|
|
56
|
-
beforeEach(async function () {
|
|
57
|
-
await (0, asyncbox_1.retryInterval)(5, 500, async () => {
|
|
58
|
-
const el = await driver.$('~Alert Views');
|
|
59
|
-
await el.click();
|
|
60
|
-
(0, chai_1.expect)(await driver.$$('~Simple')).to.have.length(1);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
afterEach(async function () {
|
|
64
|
-
try {
|
|
65
|
-
await driver.dismissAlert();
|
|
66
|
-
}
|
|
67
|
-
catch { }
|
|
68
|
-
await driver.back();
|
|
69
|
-
});
|
|
70
|
-
it('should detect Simple', async function () {
|
|
71
|
-
const el = await driver.$('~Simple');
|
|
72
|
-
await el.click();
|
|
73
|
-
await bluebird_1.default.delay(2000);
|
|
74
|
-
(0, chai_1.expect)(await driver.getAlertText()).to.include('A Short Title Is Best');
|
|
75
|
-
await driver.dismissAlert();
|
|
76
|
-
});
|
|
77
|
-
it('should detect Okay', async function () {
|
|
78
|
-
const el = await driver.$('~Okay / Cancel');
|
|
79
|
-
await el.click();
|
|
80
|
-
// small pause for alert to open
|
|
81
|
-
await bluebird_1.default.delay(1000);
|
|
82
|
-
(0, chai_1.expect)(await driver.getAlertText()).to.include('A Short Title Is Best');
|
|
83
|
-
await driver.acceptAlert();
|
|
84
|
-
});
|
|
85
|
-
it('should detect Other', async function () {
|
|
86
|
-
const el = await driver.$('~Other');
|
|
87
|
-
await el.click();
|
|
88
|
-
// small pause for alert to open
|
|
89
|
-
await bluebird_1.default.delay(1000);
|
|
90
|
-
(0, chai_1.expect)(await driver.getAlertText()).to.include('A Short Title Is Best');
|
|
91
|
-
await driver.dismissAlert();
|
|
92
|
-
});
|
|
93
|
-
describe('prompt -', function () {
|
|
94
|
-
const testData = [
|
|
95
|
-
{
|
|
96
|
-
name: 'text field',
|
|
97
|
-
alert: 'Text Entry',
|
|
98
|
-
field: 'XCUIElementTypeTextField',
|
|
99
|
-
text: 'hello world',
|
|
100
|
-
expectedText: 'hello world',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'secure text field',
|
|
104
|
-
alert: 'Secure Text Entry',
|
|
105
|
-
field: 'XCUIElementTypeSecureTextField',
|
|
106
|
-
text: 'hello world',
|
|
107
|
-
expectedText: '•••••••••••',
|
|
108
|
-
},
|
|
109
|
-
];
|
|
110
|
-
for (const test of testData) {
|
|
111
|
-
it(`should be able to interact with a prompt with a ${test.name}`, async function () {
|
|
112
|
-
const el = await driver.$(`~${test.alert}`);
|
|
113
|
-
await el.click();
|
|
114
|
-
// small pause for alert to open
|
|
115
|
-
await bluebird_1.default.delay(1000);
|
|
116
|
-
await driver.sendAlertText(test.text);
|
|
117
|
-
const textField = await driver.$(test.field);
|
|
118
|
-
const text = await textField.getText();
|
|
119
|
-
(0, chai_1.expect)(text).to.equal(test.expectedText);
|
|
120
|
-
// on some devices the keyboard obscurs the buttons so no dismiss is possible
|
|
121
|
-
await textField.setValue('\n');
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
it('should throw a NoAlertOpenError when no alert is open', async function () {
|
|
126
|
-
await (0, chai_1.expect)(driver.acceptAlert()).to.be.rejectedWith(/An attempt was made to operate on a modal dialog when one was not open/);
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
//# sourceMappingURL=alert-e2e-specs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alert-e2e-specs.js","sourceRoot":"","sources":["../../../../test/functional/basic/alert-e2e-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basic-e2e-specs.d.ts","sourceRoot":"","sources":["../../../../test/functional/basic/basic-e2e-specs.ts"],"names":[],"mappings":""}
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const bluebird_1 = __importDefault(require("bluebird"));
|
|
40
|
-
const util_1 = __importDefault(require("util"));
|
|
41
|
-
const asyncbox_1 = require("asyncbox");
|
|
42
|
-
const desired_1 = require("../desired");
|
|
43
|
-
const session_1 = require("../helpers/session");
|
|
44
|
-
const helpers_1 = require("../web/helpers");
|
|
45
|
-
const sharp_1 = __importDefault(require("sharp"));
|
|
46
|
-
const chai_1 = __importStar(require("chai"));
|
|
47
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
48
|
-
chai_1.default.use(chai_as_promised_1.default);
|
|
49
|
-
describe('XCUITestDriver - basics -', function () {
|
|
50
|
-
this.timeout(session_1.MOCHA_TIMEOUT);
|
|
51
|
-
let driver;
|
|
52
|
-
before(async function () {
|
|
53
|
-
const uiCatalogCaps = await (0, desired_1.getUICatalogCaps)();
|
|
54
|
-
driver = await (0, session_1.initSession)(uiCatalogCaps);
|
|
55
|
-
});
|
|
56
|
-
after(async function () {
|
|
57
|
-
await (0, session_1.deleteSession)();
|
|
58
|
-
});
|
|
59
|
-
describe('status -', function () {
|
|
60
|
-
it('should get the server status', async function () {
|
|
61
|
-
const status = await driver.status();
|
|
62
|
-
(0, chai_1.expect)(status.build.version).to.exist;
|
|
63
|
-
});
|
|
64
|
-
it('should return status immediately if another operation is in progress', async function () {
|
|
65
|
-
await driver.setTimeout({ implicit: 10000 });
|
|
66
|
-
const findElementPromise = driver.$('#WrongLocator');
|
|
67
|
-
const status = await driver.status();
|
|
68
|
-
(0, chai_1.expect)(status.build.version).to.exist;
|
|
69
|
-
(0, chai_1.expect)(util_1.default.inspect(findElementPromise).includes('pending')).to.be.true;
|
|
70
|
-
try {
|
|
71
|
-
await findElementPromise;
|
|
72
|
-
}
|
|
73
|
-
catch (err) {
|
|
74
|
-
(0, chai_1.expect)(err.status).to.eql(7);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
describe('source -', function () {
|
|
79
|
-
function checkSource(src) {
|
|
80
|
-
// should have full elements
|
|
81
|
-
(0, chai_1.expect)(src).to.include('<AppiumAUT>');
|
|
82
|
-
(0, chai_1.expect)(src).to.include('<XCUIElementTypeApplication');
|
|
83
|
-
// should not have any XCTest errors
|
|
84
|
-
(0, chai_1.expect)(src).to.not.include('AX error');
|
|
85
|
-
}
|
|
86
|
-
describe('plain -', function () {
|
|
87
|
-
it('should get the source for the page', async function () {
|
|
88
|
-
const src = await driver.getPageSource();
|
|
89
|
-
(0, chai_1.expect)(typeof src).to.eql('string');
|
|
90
|
-
checkSource(src);
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
describe('json parsed -', function () {
|
|
94
|
-
it('should get source with useJSONSource', async function () {
|
|
95
|
-
await driver.updateSettings({ useJSONSource: true });
|
|
96
|
-
const src = await driver.getPageSource();
|
|
97
|
-
checkSource(src);
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
describe('deactivate app -', function () {
|
|
102
|
-
it('should background the app for the specified time', async function () {
|
|
103
|
-
const before = Date.now();
|
|
104
|
-
await driver.background(4);
|
|
105
|
-
(0, chai_1.expect)(Date.now() - before).to.be.above(4000);
|
|
106
|
-
(0, chai_1.expect)((await driver.getPageSource()).indexOf('<AppiumAUT>')).to.not.eql(-1);
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
describe('screenshot -', function () {
|
|
110
|
-
after(async function () {
|
|
111
|
-
try {
|
|
112
|
-
await driver.setOrientation('PORTRAIT');
|
|
113
|
-
}
|
|
114
|
-
catch { }
|
|
115
|
-
});
|
|
116
|
-
it('should get an app screenshot', async function () {
|
|
117
|
-
const screenshot = await driver.takeScreenshot();
|
|
118
|
-
(0, chai_1.expect)(screenshot).to.exist;
|
|
119
|
-
(0, chai_1.expect)(screenshot).to.be.a('string');
|
|
120
|
-
// make sure WDA didn't crash, by using it again
|
|
121
|
-
const els = await driver.$$('~Alert Views');
|
|
122
|
-
(0, chai_1.expect)(els.length).to.eql(1);
|
|
123
|
-
});
|
|
124
|
-
it('should get an app screenshot in landscape mode', async function () {
|
|
125
|
-
const screenshot1 = await driver.takeScreenshot();
|
|
126
|
-
(0, chai_1.expect)(screenshot1).to.exist;
|
|
127
|
-
try {
|
|
128
|
-
await driver.setOrientation('LANDSCAPE');
|
|
129
|
-
}
|
|
130
|
-
catch { }
|
|
131
|
-
// take a little pause while it orients, otherwise you get the screenshot
|
|
132
|
-
// on an angle
|
|
133
|
-
await bluebird_1.default.delay(500);
|
|
134
|
-
const screenshot2 = await driver.takeScreenshot();
|
|
135
|
-
(0, chai_1.expect)(screenshot2).to.exist;
|
|
136
|
-
(0, chai_1.expect)(screenshot2).to.not.eql(screenshot1);
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
describe('viewportScreenshot -', function () {
|
|
140
|
-
it('should get a cropped screenshot of the viewport without statusbar', async function () {
|
|
141
|
-
if (process.env.CI) {
|
|
142
|
-
// Skip on GHA. Local had no issue but GHA had failed in 'mobile: viewportScreenshot'.
|
|
143
|
-
return this.skip();
|
|
144
|
-
}
|
|
145
|
-
const { statusBarSize, scale } = await driver.execute('mobile: deviceScreenInfo');
|
|
146
|
-
const viewportRect = await driver.execute('mobile: viewportRect');
|
|
147
|
-
const fullScreen = await driver.takeScreenshot();
|
|
148
|
-
const viewScreen = await driver.execute('mobile: viewportScreenshot');
|
|
149
|
-
const fullImg = (0, sharp_1.default)(Buffer.from(fullScreen, 'base64'));
|
|
150
|
-
const { width: fullImgWidth, height: fullImgHeight } = await fullImg.metadata();
|
|
151
|
-
const viewImg = (0, sharp_1.default)(Buffer.from(viewScreen, 'base64'));
|
|
152
|
-
const { width: viewImgWidth, height: viewImgHeight } = await viewImg.metadata();
|
|
153
|
-
if (fullImgWidth === undefined ||
|
|
154
|
-
fullImgHeight === undefined ||
|
|
155
|
-
viewImgWidth === undefined ||
|
|
156
|
-
viewImgHeight === undefined) {
|
|
157
|
-
throw new Error('Image dimensions must not be undefined');
|
|
158
|
-
}
|
|
159
|
-
// Viewport size can be smaller than the full image size + status bar on some devices.
|
|
160
|
-
(0, chai_1.expect)(fullImgHeight).to.be.gte(viewImgHeight + Math.round(scale * statusBarSize.height));
|
|
161
|
-
(0, chai_1.expect)(viewImgHeight).to.eql(viewportRect.height);
|
|
162
|
-
(0, chai_1.expect)(fullImgWidth).to.be.gte(viewImgWidth);
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
describe('logging -', function () {
|
|
166
|
-
describe('types -', function () {
|
|
167
|
-
it('should get the list of available logs', async function () {
|
|
168
|
-
const actualTypes = await driver.getLogTypes();
|
|
169
|
-
for (const expectedType of ['syslog', 'crashlog', 'performance', 'safariConsole', 'safariNetwork', 'server']) {
|
|
170
|
-
(0, chai_1.expect)(actualTypes).to.include(expectedType);
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
describe('retrieval -', function () {
|
|
175
|
-
it('should throw an error when an invalid type is given', async function () {
|
|
176
|
-
await (0, chai_1.expect)(driver.getLogs('something-random')).to.be.rejected;
|
|
177
|
-
});
|
|
178
|
-
it('should get system logs', async function () {
|
|
179
|
-
(0, chai_1.expect)(await driver.getLogs('syslog')).to.be.an('array');
|
|
180
|
-
});
|
|
181
|
-
it('should get crash logs', async function () {
|
|
182
|
-
(0, chai_1.expect)(await driver.getLogs('crashlog')).to.be.an('array');
|
|
183
|
-
});
|
|
184
|
-
});
|
|
185
|
-
});
|
|
186
|
-
describe('orientation -', function () {
|
|
187
|
-
beforeEach(async function () {
|
|
188
|
-
await driver.setOrientation('PORTRAIT');
|
|
189
|
-
});
|
|
190
|
-
afterEach(async function () {
|
|
191
|
-
await driver.setOrientation('PORTRAIT');
|
|
192
|
-
});
|
|
193
|
-
it('should get the current orientation', async function () {
|
|
194
|
-
const orientation = await driver.getOrientation();
|
|
195
|
-
(0, chai_1.expect)(['PORTRAIT', 'LANDSCAPE']).to.include(orientation);
|
|
196
|
-
});
|
|
197
|
-
it('should set the orientation', async function () {
|
|
198
|
-
await driver.setOrientation('LANDSCAPE');
|
|
199
|
-
(0, chai_1.expect)(await driver.getOrientation()).to.eql('LANDSCAPE');
|
|
200
|
-
});
|
|
201
|
-
it('should be able to interact with an element in LANDSCAPE', async function () {
|
|
202
|
-
await driver.setOrientation('LANDSCAPE');
|
|
203
|
-
const el = await driver.$('#Buttons');
|
|
204
|
-
await el.click();
|
|
205
|
-
await (0, chai_1.expect)(driver.findElement('css selector', '#Button')).to.not.be.rejected;
|
|
206
|
-
await driver.back();
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
describe('window size -', function () {
|
|
210
|
-
it('should be able to get the current window size', async function () {
|
|
211
|
-
const size = await driver.getWindowRect();
|
|
212
|
-
(0, chai_1.expect)(size.width).to.be.a('number');
|
|
213
|
-
(0, chai_1.expect)(size.height).to.be.a('number');
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
describe('geo location -', function () {
|
|
217
|
-
it('should work on Simulator', async function () {
|
|
218
|
-
await (0, chai_1.expect)(driver.execute('mobile: getSimulatedLocation')).to.be.fulfilled;
|
|
219
|
-
await (0, chai_1.expect)(driver.execute('mobile: setSimulatedLocation', { latitude: '30.0001', longitude: '21.0002' })).to.not.be
|
|
220
|
-
.rejected;
|
|
221
|
-
});
|
|
222
|
-
});
|
|
223
|
-
describe('shake -', function () {
|
|
224
|
-
it('should work on Simulator', async function () {
|
|
225
|
-
await (0, chai_1.expect)(driver.execute('mobile: shake')).to.be.fulfilled;
|
|
226
|
-
});
|
|
227
|
-
});
|
|
228
|
-
describe('lock -', function () {
|
|
229
|
-
it('should properly lock and unlock the device', async function () {
|
|
230
|
-
try {
|
|
231
|
-
await driver.lock();
|
|
232
|
-
(0, chai_1.expect)(await driver.isLocked()).to.be.true;
|
|
233
|
-
}
|
|
234
|
-
finally {
|
|
235
|
-
await driver.unlock();
|
|
236
|
-
}
|
|
237
|
-
(0, chai_1.expect)(await driver.isLocked()).to.be.false;
|
|
238
|
-
});
|
|
239
|
-
});
|
|
240
|
-
describe('contexts -', function () {
|
|
241
|
-
before(async function () {
|
|
242
|
-
await driver.execute('mobile: scroll', { direction: 'down' });
|
|
243
|
-
await driver.$('~Web View').click();
|
|
244
|
-
});
|
|
245
|
-
after(async function () {
|
|
246
|
-
await driver.back();
|
|
247
|
-
await driver.execute('mobile: scroll', { direction: 'up' });
|
|
248
|
-
});
|
|
249
|
-
it('should start a session, navigate to url, get title', async function () {
|
|
250
|
-
if (process.env.CI && (0, desired_1.isIosVersionBelow)('18.0')) {
|
|
251
|
-
this.skip();
|
|
252
|
-
}
|
|
253
|
-
const contexts = await driver.execute('mobile: getContexts', { waitForWebviewMs: 10000 });
|
|
254
|
-
if (process.env.CI && contexts.length < 2) {
|
|
255
|
-
// Skip on CI, since the simulator may be too slow to fetch a webview context in time
|
|
256
|
-
return this.skip();
|
|
257
|
-
}
|
|
258
|
-
await driver.switchContext(contexts[1].id);
|
|
259
|
-
await driver.navigateTo(helpers_1.GUINEA_PIG_PAGE);
|
|
260
|
-
await (0, asyncbox_1.retryInterval)(100, 1000, async function () {
|
|
261
|
-
const title = await driver.getTitle();
|
|
262
|
-
(0, chai_1.expect)(title).to.equal('I am a page title');
|
|
263
|
-
});
|
|
264
|
-
await driver.switchContext(contexts[0].id);
|
|
265
|
-
});
|
|
266
|
-
});
|
|
267
|
-
});
|
|
268
|
-
//# sourceMappingURL=basic-e2e-specs.js.map
|