@limrun/appium-xcuitest-driver 10.11.0-lim.3 → 10.14.6-lim.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 +94 -0
- package/build/lib/commands/active-app-info.d.ts +4 -3
- package/build/lib/commands/active-app-info.d.ts.map +1 -1
- package/build/lib/commands/active-app-info.js +2 -3
- package/build/lib/commands/active-app-info.js.map +1 -1
- package/build/lib/commands/alert.d.ts +26 -31
- package/build/lib/commands/alert.d.ts.map +1 -1
- package/build/lib/commands/alert.js +20 -29
- package/build/lib/commands/alert.js.map +1 -1
- package/build/lib/commands/app-management.d.ts +99 -76
- package/build/lib/commands/app-management.d.ts.map +1 -1
- package/build/lib/commands/app-management.js +83 -73
- package/build/lib/commands/app-management.js.map +1 -1
- package/build/lib/commands/app-strings.d.ts +6 -7
- package/build/lib/commands/app-strings.d.ts.map +1 -1
- package/build/lib/commands/app-strings.js +3 -8
- package/build/lib/commands/app-strings.js.map +1 -1
- package/build/lib/commands/appearance.d.ts +7 -9
- package/build/lib/commands/appearance.d.ts.map +1 -1
- package/build/lib/commands/appearance.js +13 -19
- package/build/lib/commands/appearance.js.map +1 -1
- package/build/lib/commands/audit.d.ts +5 -33
- package/build/lib/commands/audit.d.ts.map +1 -1
- package/build/lib/commands/audit.js +3 -16
- package/build/lib/commands/audit.js.map +1 -1
- package/build/lib/commands/battery.d.ts +4 -4
- package/build/lib/commands/battery.d.ts.map +1 -1
- package/build/lib/commands/battery.js +3 -7
- package/build/lib/commands/battery.js.map +1 -1
- package/build/lib/commands/biometric.d.ts +12 -14
- package/build/lib/commands/biometric.d.ts.map +1 -1
- package/build/lib/commands/biometric.js +10 -19
- package/build/lib/commands/biometric.js.map +1 -1
- package/build/lib/commands/certificate.d.ts +14 -19
- package/build/lib/commands/certificate.d.ts.map +1 -1
- package/build/lib/commands/certificate.js +24 -31
- package/build/lib/commands/certificate.js.map +1 -1
- package/build/lib/commands/clipboard.d.ts +9 -11
- package/build/lib/commands/clipboard.d.ts.map +1 -1
- package/build/lib/commands/clipboard.js +8 -13
- package/build/lib/commands/clipboard.js.map +1 -1
- package/build/lib/commands/condition.d.ts +9 -72
- package/build/lib/commands/condition.d.ts.map +1 -1
- package/build/lib/commands/condition.js +5 -66
- package/build/lib/commands/condition.js.map +1 -1
- package/build/lib/commands/content-size.d.ts +16 -19
- package/build/lib/commands/content-size.d.ts.map +1 -1
- package/build/lib/commands/content-size.js +14 -22
- package/build/lib/commands/content-size.js.map +1 -1
- package/build/lib/commands/context.d.ts +130 -161
- package/build/lib/commands/context.d.ts.map +1 -1
- package/build/lib/commands/context.js +123 -108
- package/build/lib/commands/context.js.map +1 -1
- package/build/lib/commands/device-info.d.ts +13 -0
- package/build/lib/commands/device-info.d.ts.map +1 -0
- package/build/lib/commands/device-info.js +20 -0
- package/build/lib/commands/device-info.js.map +1 -0
- package/build/lib/commands/element.d.ts +83 -67
- package/build/lib/commands/element.d.ts.map +1 -1
- package/build/lib/commands/element.js +111 -134
- package/build/lib/commands/element.js.map +1 -1
- package/build/lib/commands/execute.d.ts +10 -22
- package/build/lib/commands/execute.d.ts.map +1 -1
- package/build/lib/commands/execute.js +13 -29
- package/build/lib/commands/execute.js.map +1 -1
- package/build/lib/commands/file-movement.d.ts +31 -42
- package/build/lib/commands/file-movement.d.ts.map +1 -1
- package/build/lib/commands/file-movement.js +146 -205
- package/build/lib/commands/file-movement.js.map +1 -1
- package/build/lib/commands/find.d.ts +20 -12
- package/build/lib/commands/find.d.ts.map +1 -1
- package/build/lib/commands/find.js +27 -65
- package/build/lib/commands/find.js.map +1 -1
- package/build/lib/commands/general.d.ts +84 -80
- package/build/lib/commands/general.d.ts.map +1 -1
- package/build/lib/commands/general.js +67 -54
- package/build/lib/commands/general.js.map +1 -1
- package/build/lib/commands/geolocation.d.ts +16 -36
- package/build/lib/commands/geolocation.d.ts.map +1 -1
- package/build/lib/commands/geolocation.js +8 -25
- package/build/lib/commands/geolocation.js.map +1 -1
- package/build/lib/commands/gesture.d.ts +103 -119
- package/build/lib/commands/gesture.d.ts.map +1 -1
- package/build/lib/commands/gesture.js +98 -138
- package/build/lib/commands/gesture.js.map +1 -1
- package/build/lib/commands/increase-contrast.d.ts +10 -13
- package/build/lib/commands/increase-contrast.d.ts.map +1 -1
- package/build/lib/commands/increase-contrast.js +8 -16
- package/build/lib/commands/increase-contrast.js.map +1 -1
- package/build/lib/commands/iohid.d.ts +6 -1359
- package/build/lib/commands/iohid.d.ts.map +1 -1
- package/build/lib/commands/iohid.js +5 -10
- package/build/lib/commands/iohid.js.map +1 -1
- package/build/lib/commands/keyboard.d.ts +16 -13
- package/build/lib/commands/keyboard.d.ts.map +1 -1
- package/build/lib/commands/keyboard.js +14 -18
- package/build/lib/commands/keyboard.js.map +1 -1
- package/build/lib/commands/keychains.d.ts +2 -2
- package/build/lib/commands/keychains.d.ts.map +1 -1
- package/build/lib/commands/keychains.js +1 -4
- package/build/lib/commands/keychains.js.map +1 -1
- package/build/lib/commands/localization.d.ts +7 -6
- package/build/lib/commands/localization.d.ts.map +1 -1
- package/build/lib/commands/localization.js +7 -8
- package/build/lib/commands/localization.js.map +1 -1
- package/build/lib/commands/location.d.ts +8 -11
- package/build/lib/commands/location.d.ts.map +1 -1
- package/build/lib/commands/location.js +7 -15
- package/build/lib/commands/location.js.map +1 -1
- package/build/lib/commands/lock.d.ts +6 -10
- package/build/lib/commands/lock.d.ts.map +1 -1
- package/build/lib/commands/lock.js +3 -10
- package/build/lib/commands/lock.js.map +1 -1
- package/build/lib/commands/log.d.ts +42 -44
- package/build/lib/commands/log.d.ts.map +1 -1
- package/build/lib/commands/log.js +32 -53
- package/build/lib/commands/log.js.map +1 -1
- package/build/lib/commands/memory.d.ts +4 -5
- package/build/lib/commands/memory.d.ts.map +1 -1
- package/build/lib/commands/memory.js +3 -8
- package/build/lib/commands/memory.js.map +1 -1
- package/build/lib/commands/navigation.d.ts +14 -26
- package/build/lib/commands/navigation.d.ts.map +1 -1
- package/build/lib/commands/navigation.js +22 -32
- package/build/lib/commands/navigation.js.map +1 -1
- package/build/lib/commands/notifications.d.ts +10 -10
- package/build/lib/commands/notifications.d.ts.map +1 -1
- package/build/lib/commands/notifications.js +8 -12
- package/build/lib/commands/notifications.js.map +1 -1
- package/build/lib/commands/pasteboard.d.ts +9 -10
- package/build/lib/commands/pasteboard.d.ts.map +1 -1
- package/build/lib/commands/pasteboard.js +8 -13
- package/build/lib/commands/pasteboard.js.map +1 -1
- package/build/lib/commands/pcap.d.ts +18 -38
- package/build/lib/commands/pcap.d.ts.map +1 -1
- package/build/lib/commands/pcap.js +9 -14
- package/build/lib/commands/pcap.js.map +1 -1
- package/build/lib/commands/performance.d.ts +36 -55
- package/build/lib/commands/performance.d.ts.map +1 -1
- package/build/lib/commands/performance.js +93 -86
- package/build/lib/commands/performance.js.map +1 -1
- package/build/lib/commands/permissions.d.ts +15 -17
- package/build/lib/commands/permissions.d.ts.map +1 -1
- package/build/lib/commands/permissions.js +12 -18
- package/build/lib/commands/permissions.js.map +1 -1
- package/build/lib/commands/proxy-helper.d.ts +11 -11
- package/build/lib/commands/proxy-helper.d.ts.map +1 -1
- package/build/lib/commands/proxy-helper.js +15 -24
- package/build/lib/commands/proxy-helper.js.map +1 -1
- package/build/lib/commands/record-audio.d.ts +25 -52
- package/build/lib/commands/record-audio.d.ts.map +1 -1
- package/build/lib/commands/record-audio.js +17 -19
- package/build/lib/commands/record-audio.js.map +1 -1
- package/build/lib/commands/recordscreen.d.ts +31 -62
- package/build/lib/commands/recordscreen.d.ts.map +1 -1
- package/build/lib/commands/recordscreen.js +29 -28
- package/build/lib/commands/recordscreen.js.map +1 -1
- package/build/lib/commands/screenshots.d.ts +15 -9
- package/build/lib/commands/screenshots.d.ts.map +1 -1
- package/build/lib/commands/screenshots.js +16 -16
- package/build/lib/commands/screenshots.js.map +1 -1
- package/build/lib/commands/simctl.d.ts +16 -22
- package/build/lib/commands/simctl.d.ts.map +1 -1
- package/build/lib/commands/simctl.js +13 -17
- package/build/lib/commands/simctl.js.map +1 -1
- package/build/lib/commands/source.d.ts +10 -8
- package/build/lib/commands/source.d.ts.map +1 -1
- package/build/lib/commands/source.js +11 -14
- package/build/lib/commands/source.js.map +1 -1
- package/build/lib/commands/timeouts.d.ts +25 -32
- package/build/lib/commands/timeouts.d.ts.map +1 -1
- package/build/lib/commands/timeouts.js +19 -15
- package/build/lib/commands/timeouts.js.map +1 -1
- package/build/lib/commands/types.d.ts +80 -0
- package/build/lib/commands/types.d.ts.map +1 -1
- package/build/lib/commands/web.d.ts +199 -202
- package/build/lib/commands/web.d.ts.map +1 -1
- package/build/lib/commands/web.js +216 -175
- package/build/lib/commands/web.js.map +1 -1
- package/build/lib/commands/xctest-record-screen.d.ts +17 -47
- package/build/lib/commands/xctest-record-screen.d.ts.map +1 -1
- package/build/lib/commands/xctest-record-screen.js +28 -59
- package/build/lib/commands/xctest-record-screen.js.map +1 -1
- package/build/lib/commands/xctest.d.ts +37 -37
- package/build/lib/commands/xctest.d.ts.map +1 -1
- package/build/lib/commands/xctest.js +38 -50
- package/build/lib/commands/xctest.js.map +1 -1
- package/build/lib/desired-caps.js +1 -1
- package/build/lib/device/log/ios-simulator-log.d.ts.map +1 -1
- package/build/lib/device/log/ios-simulator-log.js +2 -0
- package/build/lib/device/log/ios-simulator-log.js.map +1 -1
- package/build/lib/device/simulator-management.d.ts.map +1 -1
- package/build/lib/device/simulator-management.js +4 -5
- package/build/lib/device/simulator-management.js.map +1 -1
- package/build/lib/device-log/ios-crash-log.d.ts +1 -1
- package/build/lib/device-log/ios-crash-log.d.ts.map +1 -1
- package/build/lib/device-log/ios-simulator-log.d.ts +1 -1
- package/build/lib/device-log/ios-simulator-log.d.ts.map +1 -1
- package/build/lib/doctor/optional-checks.d.ts +0 -9
- package/build/lib/doctor/optional-checks.d.ts.map +1 -1
- package/build/lib/doctor/optional-checks.js +1 -30
- package/build/lib/doctor/optional-checks.js.map +1 -1
- package/build/lib/driver.d.ts +11 -3
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +36 -12
- package/build/lib/driver.js.map +1 -1
- package/build/lib/execute-method-map.d.ts.map +1 -1
- package/build/lib/execute-method-map.js +0 -9
- package/build/lib/execute-method-map.js.map +1 -1
- package/build/lib/simulator-management.js +3 -3
- package/build/lib/simulator-management.js.map +1 -1
- package/lib/commands/active-app-info.ts +15 -0
- package/lib/commands/alert.ts +98 -0
- package/lib/commands/app-management.ts +414 -0
- package/lib/commands/{app-strings.js → app-strings.ts} +10 -9
- package/lib/commands/appearance.ts +70 -0
- package/lib/commands/audit.ts +25 -0
- package/lib/commands/{battery.js → battery.ts} +10 -12
- package/lib/commands/biometric.ts +52 -0
- package/lib/commands/{certificate.js → certificate.ts} +55 -50
- package/lib/commands/clipboard.ts +37 -0
- package/lib/commands/{condition.js → condition.ts} +21 -77
- package/lib/commands/content-size.ts +67 -0
- package/lib/commands/{context.js → context.ts} +174 -146
- package/lib/commands/device-info.ts +24 -0
- package/lib/commands/element.ts +419 -0
- package/lib/commands/{execute.js → execute.ts} +42 -38
- package/lib/commands/{file-movement.js → file-movement.ts} +212 -235
- package/lib/commands/find.ts +277 -0
- package/lib/commands/{general.js → general.ts} +102 -77
- package/lib/commands/geolocation.ts +55 -0
- package/lib/commands/{gesture.js → gesture.ts} +225 -183
- package/lib/commands/increase-contrast.ts +49 -0
- package/lib/commands/{iohid.js → iohid.ts} +15 -13
- package/lib/commands/keyboard.ts +70 -0
- package/lib/commands/keychains.ts +16 -0
- package/lib/commands/{localization.js → localization.ts} +22 -12
- package/lib/commands/{location.js → location.ts} +19 -22
- package/lib/commands/lock.ts +43 -0
- package/lib/commands/{log.js → log.ts} +68 -68
- package/lib/commands/{memory.js → memory.ts} +9 -9
- package/lib/commands/{navigation.js → navigation.ts} +42 -39
- package/lib/commands/{notifications.js → notifications.ts} +22 -14
- package/lib/commands/pasteboard.ts +44 -0
- package/lib/commands/{pcap.js → pcap.ts} +28 -28
- package/lib/commands/{performance.js → performance.ts} +133 -114
- package/lib/commands/permissions.ts +90 -0
- package/lib/commands/{proxy-helper.js → proxy-helper.ts} +26 -26
- package/lib/commands/{record-audio.js → record-audio.ts} +35 -33
- package/lib/commands/{recordscreen.js → recordscreen.ts} +78 -50
- package/lib/commands/{screenshots.js → screenshots.ts} +27 -21
- package/lib/commands/simctl.ts +82 -0
- package/lib/commands/{source.js → source.ts} +23 -20
- package/lib/commands/timeouts.ts +95 -0
- package/lib/commands/types.ts +86 -0
- package/lib/commands/{web.js → web.ts} +314 -264
- package/lib/commands/{xctest-record-screen.js → xctest-record-screen.ts} +54 -71
- package/lib/commands/{xctest.js → xctest.ts} +78 -71
- package/lib/desired-caps.ts +1 -1
- package/lib/device/log/ios-simulator-log.ts +2 -0
- package/lib/device/simulator-management.ts +3 -6
- package/lib/doctor/optional-checks.ts +0 -33
- package/lib/driver.ts +38 -13
- package/lib/execute-method-map.ts +0 -9
- package/package.json +6 -5
- package/lib/commands/active-app-info.js +0 -12
- package/lib/commands/alert.js +0 -88
- package/lib/commands/app-management.js +0 -346
- package/lib/commands/appearance.js +0 -71
- package/lib/commands/audit.js +0 -31
- package/lib/commands/biometric.js +0 -52
- package/lib/commands/clipboard.js +0 -35
- package/lib/commands/content-size.js +0 -68
- package/lib/commands/deviceInfo.js +0 -27
- package/lib/commands/element.js +0 -423
- package/lib/commands/find.js +0 -205
- package/lib/commands/geolocation.js +0 -56
- package/lib/commands/increase-contrast.js +0 -50
- package/lib/commands/keyboard.js +0 -62
- package/lib/commands/keychains.js +0 -17
- package/lib/commands/lock.js +0 -46
- package/lib/commands/pasteboard.js +0 -43
- package/lib/commands/permissions.js +0 -85
- package/lib/commands/simctl.js +0 -71
- package/lib/commands/timeouts.js +0 -68
package/lib/driver.ts
CHANGED
|
@@ -21,6 +21,8 @@ import {LRUCache} from 'lru-cache';
|
|
|
21
21
|
import EventEmitter from 'node:events';
|
|
22
22
|
import path from 'node:path';
|
|
23
23
|
import url from 'node:url';
|
|
24
|
+
import {Ios} from '@limrun/api';
|
|
25
|
+
import {setLimrunIosClient} from 'appium-xcode';
|
|
24
26
|
import {
|
|
25
27
|
SUPPORTED_EXTENSIONS,
|
|
26
28
|
SAFARI_BUNDLE_ID,
|
|
@@ -41,7 +43,7 @@ import * as clipboardCommands from './commands/clipboard';
|
|
|
41
43
|
import * as conditionCommands from './commands/condition';
|
|
42
44
|
import * as contentSizeCommands from './commands/content-size';
|
|
43
45
|
import * as contextCommands from './commands/context';
|
|
44
|
-
import * as deviceInfoCommands from './commands/
|
|
46
|
+
import * as deviceInfoCommands from './commands/device-info';
|
|
45
47
|
import * as elementCommands from './commands/element';
|
|
46
48
|
import * as executeCommands from './commands/execute';
|
|
47
49
|
import * as fileMovementCommands from './commands/file-movement';
|
|
@@ -121,7 +123,7 @@ import type { PerfRecorder } from './commands/performance';
|
|
|
121
123
|
import type { AudioRecorder } from './commands/record-audio';
|
|
122
124
|
import type { TrafficCapture } from './commands/pcap';
|
|
123
125
|
import type { ScreenRecorder } from './commands/recordscreen';
|
|
124
|
-
import type { DVTServiceWithConnection } from '
|
|
126
|
+
import type { DVTServiceWithConnection } from 'appium-ios-remotexpc';
|
|
125
127
|
import type { IOSDeviceLog } from './device/log/ios-device-log';
|
|
126
128
|
import type { IOSSimulatorLog } from './device/log/ios-simulator-log';
|
|
127
129
|
import type { IOSCrashLog } from './device/log/ios-crash-log';
|
|
@@ -242,8 +244,6 @@ const MEMOIZED_FUNCTIONS = ['getStatusBarHeight', 'getDevicePixelRatio', 'getScr
|
|
|
242
244
|
// Capabilities that do not have xcodebuild process
|
|
243
245
|
const CAP_NAMES_NO_XCODEBUILD_REQUIRED = ['webDriverAgentUrl', 'usePreinstalledWDA'];
|
|
244
246
|
|
|
245
|
-
const BUNDLE_VERSION_PATTERN = /CFBundleVersion\s+=\s+"?([^(;|")]+)/;
|
|
246
|
-
|
|
247
247
|
export class XCUITestDriver
|
|
248
248
|
extends BaseDriver<XCUITestDriverConstraints, StringRecord>
|
|
249
249
|
implements ExternalDriver<XCUITestDriverConstraints, FullContext|string, StringRecord> {
|
|
@@ -278,7 +278,7 @@ export class XCUITestDriver
|
|
|
278
278
|
_device: Simulator | RealDevice;
|
|
279
279
|
_iosSdkVersion: string | null;
|
|
280
280
|
_wda: WebDriverAgent | null;
|
|
281
|
-
|
|
281
|
+
_remote: RemoteDebugger | null;
|
|
282
282
|
logs: DriverLogs;
|
|
283
283
|
_bidiServerLogListener: LogListener | undefined;
|
|
284
284
|
|
|
@@ -293,6 +293,7 @@ export class XCUITestDriver
|
|
|
293
293
|
pageLoadMs: number;
|
|
294
294
|
landscapeWebCoordsOffset: number;
|
|
295
295
|
mjpegStream?: mjpeg.MJpegStream;
|
|
296
|
+
_limClient?: Ios.InstanceClient;
|
|
296
297
|
|
|
297
298
|
constructor(opts: XCUITestDriverOpts, shouldValidateCaps = true) {
|
|
298
299
|
super(opts, shouldValidateCaps);
|
|
@@ -337,10 +338,20 @@ export class XCUITestDriver
|
|
|
337
338
|
this.lifecycleData = {};
|
|
338
339
|
this._audioRecorder = null;
|
|
339
340
|
this.appInfosCache = new AppInfosCache(this.log);
|
|
340
|
-
this.
|
|
341
|
+
this._remote = null;
|
|
341
342
|
this.doesSupportBidi = true;
|
|
342
343
|
this._wda = null;
|
|
343
344
|
}
|
|
345
|
+
/**
|
|
346
|
+
* Gets the Limrun iOS instance client.
|
|
347
|
+
* @throws {Error} If the client has not been initialized.
|
|
348
|
+
*/
|
|
349
|
+
get limClient(): Ios.InstanceClient {
|
|
350
|
+
if (!this._limClient) {
|
|
351
|
+
throw new Error('Limrun client not initialized. Ensure limInstanceApiUrl and limInstanceToken capabilities are provided.');
|
|
352
|
+
}
|
|
353
|
+
return this._limClient;
|
|
354
|
+
}
|
|
344
355
|
|
|
345
356
|
// Override methods from BaseDriver
|
|
346
357
|
override async createSession(
|
|
@@ -358,6 +369,15 @@ export class XCUITestDriver
|
|
|
358
369
|
if (this.mergeCliArgsToOpts()) {
|
|
359
370
|
this.validateDesiredCaps({...caps, ...this.cliArgs});
|
|
360
371
|
}
|
|
372
|
+
if (!this.opts.limInstanceApiUrl || !this.opts.limInstanceToken) {
|
|
373
|
+
throw new Error('limInstanceApiUrl and limInstanceToken are required');
|
|
374
|
+
}
|
|
375
|
+
this._limClient = await Ios.createInstanceClient({
|
|
376
|
+
apiUrl: this.opts.limInstanceApiUrl,
|
|
377
|
+
token: this.opts.limInstanceToken,
|
|
378
|
+
logLevel: 'debug',
|
|
379
|
+
});
|
|
380
|
+
setLimrunIosClient(this._limClient);
|
|
361
381
|
|
|
362
382
|
await this.start();
|
|
363
383
|
|
|
@@ -456,7 +476,7 @@ export class XCUITestDriver
|
|
|
456
476
|
}
|
|
457
477
|
}
|
|
458
478
|
|
|
459
|
-
if (this.
|
|
479
|
+
if (this._remote) {
|
|
460
480
|
this.log.debug('Found a remote debugger session. Removing...');
|
|
461
481
|
await this.stopRemote();
|
|
462
482
|
}
|
|
@@ -502,7 +522,7 @@ export class XCUITestDriver
|
|
|
502
522
|
this.log.debug(`Executing command '${cmd}'`);
|
|
503
523
|
|
|
504
524
|
if (cmd === 'receiveAsyncResponse') {
|
|
505
|
-
return await this.receiveAsyncResponse(
|
|
525
|
+
return await this.receiveAsyncResponse(args[0], args[1]);
|
|
506
526
|
}
|
|
507
527
|
// TODO: once this fix gets into base driver remove from here
|
|
508
528
|
if (cmd === 'getStatus') {
|
|
@@ -673,6 +693,13 @@ export class XCUITestDriver
|
|
|
673
693
|
return this._wda;
|
|
674
694
|
}
|
|
675
695
|
|
|
696
|
+
get remote(): RemoteDebugger {
|
|
697
|
+
if (!this._remote) {
|
|
698
|
+
throw new Error('Remote debugger is not initialized');
|
|
699
|
+
}
|
|
700
|
+
return this._remote;
|
|
701
|
+
}
|
|
702
|
+
|
|
676
703
|
get driverData(): Record<string, any> {
|
|
677
704
|
// TODO fill out resource info here
|
|
678
705
|
return {};
|
|
@@ -860,8 +887,7 @@ export class XCUITestDriver
|
|
|
860
887
|
await this.runReset();
|
|
861
888
|
|
|
862
889
|
this._wda = new WebDriverAgent(
|
|
863
|
-
|
|
864
|
-
this.xcodeVersion,
|
|
890
|
+
undefined,
|
|
865
891
|
{
|
|
866
892
|
...this.opts,
|
|
867
893
|
device: this.device,
|
|
@@ -1344,10 +1370,9 @@ export class XCUITestDriver
|
|
|
1344
1370
|
try {
|
|
1345
1371
|
const device = await getSimulator(this.opts.udid, {
|
|
1346
1372
|
devicesSetPath: this.opts.simulatorDevicesSetPath,
|
|
1373
|
+
limClient: this.limClient,
|
|
1347
1374
|
// @ts-ignore This is ok
|
|
1348
1375
|
logger: this.log,
|
|
1349
|
-
limInstanceApiUrl: this.opts.limInstanceApiUrl,
|
|
1350
|
-
limInstanceToken: this.opts.limInstanceToken,
|
|
1351
1376
|
});
|
|
1352
1377
|
return {device, realDevice: false, udid: this.opts.udid};
|
|
1353
1378
|
} catch {
|
|
@@ -1741,7 +1766,7 @@ export class XCUITestDriver
|
|
|
1741
1766
|
this.implicitWaitMs = 0;
|
|
1742
1767
|
this.pageLoadMs = 6000;
|
|
1743
1768
|
this.landscapeWebCoordsOffset = 0;
|
|
1744
|
-
this.
|
|
1769
|
+
this._remote = null;
|
|
1745
1770
|
this._conditionInducerService = null;
|
|
1746
1771
|
this._remoteXPCConditionInducerConnection = null;
|
|
1747
1772
|
|
|
@@ -215,7 +215,6 @@ export const executeMethodMap = {
|
|
|
215
215
|
command: 'getViewportRect',
|
|
216
216
|
},
|
|
217
217
|
'mobile: startPerfRecord': {
|
|
218
|
-
// @ts-expect-error Class field assignment - method exists on XCUITestDriver
|
|
219
218
|
command: 'mobileStartPerfRecord',
|
|
220
219
|
params: {
|
|
221
220
|
optional: ['timeout', 'profileName', 'pid'],
|
|
@@ -253,7 +252,6 @@ export const executeMethodMap = {
|
|
|
253
252
|
command: 'mobileListCertificates',
|
|
254
253
|
},
|
|
255
254
|
'mobile: startLogsBroadcast': {
|
|
256
|
-
// @ts-expect-error Class field assignment - method exists on XCUITestDriver
|
|
257
255
|
command: 'mobileStartLogsBroadcast',
|
|
258
256
|
},
|
|
259
257
|
'mobile: stopLogsBroadcast': {
|
|
@@ -468,28 +466,24 @@ export const executeMethodMap = {
|
|
|
468
466
|
command: 'mobileResetLocationService',
|
|
469
467
|
},
|
|
470
468
|
'mobile: startPcap': {
|
|
471
|
-
// @ts-expect-error Class field assignment - method exists on XCUITestDriver
|
|
472
469
|
command: 'mobileStartPcap',
|
|
473
470
|
params: {
|
|
474
471
|
optional: ['timeLimitSec', 'forceRestart'],
|
|
475
472
|
},
|
|
476
473
|
},
|
|
477
474
|
'mobile: stopPcap': {
|
|
478
|
-
// @ts-expect-error Class field assignment - method exists on XCUITestDriver
|
|
479
475
|
command: 'mobileStopPcap',
|
|
480
476
|
},
|
|
481
477
|
'mobile: listConditionInducers': {
|
|
482
478
|
command: 'listConditionInducers',
|
|
483
479
|
},
|
|
484
480
|
'mobile: enableConditionInducer': {
|
|
485
|
-
// @ts-expect-error Class field assignment - method exists on XCUITestDriver
|
|
486
481
|
command: 'enableConditionInducer',
|
|
487
482
|
params: {
|
|
488
483
|
required: ['conditionID', 'profileID'],
|
|
489
484
|
},
|
|
490
485
|
},
|
|
491
486
|
'mobile: disableConditionInducer': {
|
|
492
|
-
// @ts-expect-error Class field assignment - method exists on XCUITestDriver
|
|
493
487
|
command: 'disableConditionInducer',
|
|
494
488
|
},
|
|
495
489
|
'mobile: updateSafariPreferences': {
|
|
@@ -499,7 +493,6 @@ export const executeMethodMap = {
|
|
|
499
493
|
},
|
|
500
494
|
},
|
|
501
495
|
'mobile: calibrateWebToRealCoordinatesTranslation': {
|
|
502
|
-
// @ts-expect-error Class field assignment - method exists on XCUITestDriver
|
|
503
496
|
command: 'mobileCalibrateWebToRealCoordinatesTranslation',
|
|
504
497
|
},
|
|
505
498
|
'mobile: keys': {
|
|
@@ -532,7 +525,6 @@ export const executeMethodMap = {
|
|
|
532
525
|
command: 'mobileShake',
|
|
533
526
|
},
|
|
534
527
|
'mobile: startAudioRecording': {
|
|
535
|
-
// @ts-expect-error Class field assignment - method exists on XCUITestDriver
|
|
536
528
|
command: 'startAudioRecording',
|
|
537
529
|
params: {
|
|
538
530
|
required: ['audioInput'],
|
|
@@ -547,7 +539,6 @@ export const executeMethodMap = {
|
|
|
547
539
|
},
|
|
548
540
|
},
|
|
549
541
|
'mobile: stopAudioRecording': {
|
|
550
|
-
// @ts-expect-error Class field assignment - method exists on XCUITestDriver
|
|
551
542
|
command: 'stopAudioRecording',
|
|
552
543
|
},
|
|
553
544
|
'mobile: hideKeyboard': {
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"xcuitest",
|
|
9
9
|
"xctest"
|
|
10
10
|
],
|
|
11
|
-
"version": "10.
|
|
11
|
+
"version": "10.14.6-lim.1",
|
|
12
12
|
"author": "Appium Contributors",
|
|
13
13
|
"license": "Apache-2.0",
|
|
14
14
|
"repository": {
|
|
@@ -82,14 +82,15 @@
|
|
|
82
82
|
"dependencies": {
|
|
83
83
|
"@appium/strongbox": "^1.0.0-rc.1",
|
|
84
84
|
"@colors/colors": "^1.6.0",
|
|
85
|
+
"@limrun/api": "^0.18.3",
|
|
85
86
|
"appium-idb": "^2.0.0",
|
|
86
87
|
"appium-ios-device": "^3.0.0",
|
|
87
|
-
"appium-ios-simulator": "npm:@limrun/appium-ios-simulator@8.0.
|
|
88
|
+
"appium-ios-simulator": "npm:@limrun/appium-ios-simulator@8.0.9-lim.2",
|
|
88
89
|
"appium-remote-debugger": "npm:@limrun/appium-remote-debugger@15.2.7-lim.4",
|
|
89
90
|
"appium-webdriveragent": "npm:@limrun/appium-webdriveragent@10.4.2-lim.1",
|
|
90
|
-
"appium-xcode": "npm:@limrun/appium-xcode@6.1.
|
|
91
|
+
"appium-xcode": "npm:@limrun/appium-xcode@6.1.6-lim.1",
|
|
91
92
|
"async-lock": "^1.4.0",
|
|
92
|
-
"asyncbox": "^
|
|
93
|
+
"asyncbox": "^4.0.1",
|
|
93
94
|
"bluebird": "^3.7.2",
|
|
94
95
|
"commander": "^14.0.1",
|
|
95
96
|
"css-selector-parser": "^3.0.0",
|
|
@@ -99,7 +100,7 @@
|
|
|
99
100
|
"moment": "^2.29.4",
|
|
100
101
|
"moment-timezone": "^0.x",
|
|
101
102
|
"node-devicectl": "^1.1.0",
|
|
102
|
-
"node-simctl": "npm:@limrun/node-simctl@8.1.
|
|
103
|
+
"node-simctl": "npm:@limrun/node-simctl@8.1.3-lim.1",
|
|
103
104
|
"portscanner": "^2.2.0",
|
|
104
105
|
"semver": "^7.5.4",
|
|
105
106
|
"teen_process": "^3.0.0",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns information about the active application.
|
|
3
|
-
*
|
|
4
|
-
* @returns {Promise<import('./types').ActiveAppInfo>} Active app information
|
|
5
|
-
* @throws {Error} if an error raised by command
|
|
6
|
-
* @this {import('../driver').XCUITestDriver}
|
|
7
|
-
*/
|
|
8
|
-
export async function mobileGetActiveAppInfo() {
|
|
9
|
-
return /** @type {import('./types').ActiveAppInfo} */ (
|
|
10
|
-
await this.proxyCommand('/wda/activeAppInfo', 'GET')
|
|
11
|
-
);
|
|
12
|
-
}
|
package/lib/commands/alert.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @this {XCUITestDriver}
|
|
3
|
-
*/
|
|
4
|
-
export async function getAlertText() {
|
|
5
|
-
return /** @type {string|null} */ (await this.proxyCommand('/alert/text', 'GET'));
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @param {string} value
|
|
10
|
-
* @this {XCUITestDriver}
|
|
11
|
-
* @returns {Promise<void>}
|
|
12
|
-
*/
|
|
13
|
-
export async function setAlertText(value) {
|
|
14
|
-
await this.proxyCommand('/alert/text', 'POST', {value});
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* @param { {buttonLabel?: string} } opts
|
|
19
|
-
* @returns {Promise<void>}
|
|
20
|
-
* @this {XCUITestDriver}
|
|
21
|
-
*/
|
|
22
|
-
export async function postAcceptAlert(opts = {}) {
|
|
23
|
-
await this.proxyCommand('/alert/accept', 'POST', toAlertParams(opts));
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @param { {buttonLabel?: string} } opts
|
|
28
|
-
* @returns {Promise<void>}
|
|
29
|
-
* @this {XCUITestDriver}
|
|
30
|
-
*/
|
|
31
|
-
export async function postDismissAlert(opts = {}) {
|
|
32
|
-
await this.proxyCommand('/alert/dismiss', 'POST', toAlertParams(opts));
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* @internal
|
|
37
|
-
* @this {XCUITestDriver}
|
|
38
|
-
* @returns {Promise<string[]>} The list of button labels
|
|
39
|
-
*/
|
|
40
|
-
export async function getAlertButtons() {
|
|
41
|
-
return /** @type {string[]} */ (await this.proxyCommand('/wda/alert/buttons', 'GET'));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Tries to apply the given action to the currently visible alert.
|
|
46
|
-
*
|
|
47
|
-
* @param {AlertAction} action - The actual action to apply.
|
|
48
|
-
* @param {string} [buttonLabel] - The name of the button used to perform the chosen alert action. Only makes sense if the action is `accept` or `dismiss`.
|
|
49
|
-
* @returns {Promise<string[]|void>} If `action` is `getButtons`, a list of alert button labelsp; otherwise nothing.
|
|
50
|
-
* @remarks This should really be separate commands.
|
|
51
|
-
* @this {XCUITestDriver}
|
|
52
|
-
*/
|
|
53
|
-
export async function mobileHandleAlert(action, buttonLabel) {
|
|
54
|
-
switch (action) {
|
|
55
|
-
case 'accept':
|
|
56
|
-
return await this.postAcceptAlert({buttonLabel});
|
|
57
|
-
case 'dismiss':
|
|
58
|
-
return await this.postDismissAlert({buttonLabel});
|
|
59
|
-
case 'getButtons':
|
|
60
|
-
return await this.getAlertButtons();
|
|
61
|
-
default:
|
|
62
|
-
throw new Error(
|
|
63
|
-
`The 'action' value should be either 'accept', 'dismiss' or 'getButtons'. ` +
|
|
64
|
-
`'${action}' is provided instead.`,
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
*
|
|
71
|
-
* @param { {buttonLabel?: string} } opts
|
|
72
|
-
* @returns { {name?: string} }
|
|
73
|
-
*/
|
|
74
|
-
function toAlertParams(opts = {}) {
|
|
75
|
-
const params = {};
|
|
76
|
-
if (opts.buttonLabel) {
|
|
77
|
-
params.name = opts.buttonLabel;
|
|
78
|
-
}
|
|
79
|
-
return params;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* @typedef {'accept'|'dismiss'|'getButtons'} AlertAction
|
|
84
|
-
*/
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @typedef {import('../driver').XCUITestDriver} XCUITestDriver
|
|
88
|
-
*/
|