appium-uiautomator2-driver 4.1.2 → 4.1.4
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/commands/app-management.d.ts +0 -10
- package/build/lib/commands/app-management.d.ts.map +1 -1
- package/build/lib/commands/app-management.js +0 -13
- package/build/lib/commands/app-management.js.map +1 -1
- package/build/lib/driver.d.ts +7 -8
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +0 -1
- package/build/lib/driver.js.map +1 -1
- package/build/lib/execute-method-map.d.ts +6 -6
- package/build/lib/execute-method-map.d.ts.map +1 -1
- package/build/lib/execute-method-map.js +0 -6
- package/build/lib/execute-method-map.js.map +1 -1
- package/build/lib/uiautomator2.d.ts +23 -16
- package/build/lib/uiautomator2.d.ts.map +1 -1
- package/build/lib/uiautomator2.js +70 -65
- package/build/lib/uiautomator2.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/commands/app-management.js +0 -13
- package/lib/driver.ts +0 -2
- package/lib/execute-method-map.ts +0 -7
- package/lib/uiautomator2.js +66 -54
- package/npm-shrinkwrap.json +50 -50
- package/package.json +2 -2
|
@@ -22,19 +22,6 @@ export async function mobileInstallMultipleApks(apks, options) {
|
|
|
22
22
|
await this.adb.installMultipleApks(configuredApks, options);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
/**
|
|
26
|
-
* Puts the app to background and waits the given number of seconds then restores the app
|
|
27
|
-
* if necessary. The call is blocking.
|
|
28
|
-
*
|
|
29
|
-
* @this {AndroidUiautomator2Driver}
|
|
30
|
-
* @param {number} [seconds=-1] The amount of seconds to wait between putting the app to background and restoring it.
|
|
31
|
-
* Any negative value means to not restore the app after putting it to background.
|
|
32
|
-
* @returns {Promise<void>}
|
|
33
|
-
*/
|
|
34
|
-
export async function mobileBackgroundApp(seconds = -1) {
|
|
35
|
-
await this.background(seconds);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
25
|
/**
|
|
39
26
|
* @typedef {import('../driver').AndroidUiautomator2Driver} AndroidUiautomator2Driver
|
|
40
27
|
*/
|
package/lib/driver.ts
CHANGED
|
@@ -53,7 +53,6 @@ import {
|
|
|
53
53
|
} from './commands/alert';
|
|
54
54
|
import {
|
|
55
55
|
mobileInstallMultipleApks,
|
|
56
|
-
mobileBackgroundApp,
|
|
57
56
|
} from './commands/app-management';
|
|
58
57
|
import {
|
|
59
58
|
mobileGetBatteryInfo,
|
|
@@ -1010,7 +1009,6 @@ class AndroidUiautomator2Driver
|
|
|
1010
1009
|
postDismissAlert = postDismissAlert;
|
|
1011
1010
|
|
|
1012
1011
|
mobileInstallMultipleApks = mobileInstallMultipleApks;
|
|
1013
|
-
mobileBackgroundApp = mobileBackgroundApp;
|
|
1014
1012
|
|
|
1015
1013
|
mobileGetBatteryInfo = mobileGetBatteryInfo;
|
|
1016
1014
|
|
|
@@ -214,13 +214,6 @@ export const executeMethodMap = {
|
|
|
214
214
|
}
|
|
215
215
|
},
|
|
216
216
|
|
|
217
|
-
'mobile: backgroundApp': {
|
|
218
|
-
command: 'mobileBackgroundApp',
|
|
219
|
-
params: {
|
|
220
|
-
optional: ['seconds'],
|
|
221
|
-
}
|
|
222
|
-
},
|
|
223
|
-
|
|
224
217
|
'mobile: pressKey': {
|
|
225
218
|
command: 'mobilePressKey',
|
|
226
219
|
params: {
|
package/lib/uiautomator2.js
CHANGED
|
@@ -11,12 +11,14 @@ import B from 'bluebird';
|
|
|
11
11
|
import axios from 'axios';
|
|
12
12
|
|
|
13
13
|
const REQD_PARAMS = ['adb', 'tmpDir', 'host', 'systemPort', 'devicePort', 'disableWindowAnimation'];
|
|
14
|
-
const
|
|
14
|
+
const SERVER_LAUNCH_TIMEOUT_MS = 30000;
|
|
15
15
|
const SERVER_INSTALL_RETRIES = 20;
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
16
|
+
const SERVICES_LAUNCH_TIMEOUT_MS = 30000;
|
|
17
|
+
const SERVER_SHUTDOWN_TIMEOUT_MS = 5000;
|
|
18
|
+
const SERVER_REQUEST_TIMEOUT_MS = 500;
|
|
19
|
+
export const SERVER_PACKAGE_ID = 'io.appium.uiautomator2.server';
|
|
20
|
+
export const SERVER_TEST_PACKAGE_ID = `${SERVER_PACKAGE_ID}.test`;
|
|
21
|
+
export const INSTRUMENTATION_TARGET = `${SERVER_TEST_PACKAGE_ID}/androidx.test.runner.AndroidJUnitRunner`;
|
|
20
22
|
|
|
21
23
|
class UIA2Proxy extends JWProxy {
|
|
22
24
|
/** @type {boolean} */
|
|
@@ -36,7 +38,7 @@ class UIA2Proxy extends JWProxy {
|
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
|
|
39
|
-
class UiAutomator2Server {
|
|
41
|
+
export class UiAutomator2Server {
|
|
40
42
|
/** @type {string} */
|
|
41
43
|
host;
|
|
42
44
|
|
|
@@ -209,7 +211,7 @@ class UiAutomator2Server {
|
|
|
209
211
|
}
|
|
210
212
|
|
|
211
213
|
async verifyServicesAvailability () {
|
|
212
|
-
this.log.debug(`Waiting up to ${
|
|
214
|
+
this.log.debug(`Waiting up to ${SERVICES_LAUNCH_TIMEOUT_MS}ms for services to be available`);
|
|
213
215
|
let isPmServiceAvailable = false;
|
|
214
216
|
let pmOutput = '';
|
|
215
217
|
let pmError = null;
|
|
@@ -236,7 +238,7 @@ class UiAutomator2Server {
|
|
|
236
238
|
}
|
|
237
239
|
return isPmServiceAvailable;
|
|
238
240
|
}, {
|
|
239
|
-
waitMs:
|
|
241
|
+
waitMs: SERVICES_LAUNCH_TIMEOUT_MS,
|
|
240
242
|
intervalMs: 1000,
|
|
241
243
|
});
|
|
242
244
|
} catch {
|
|
@@ -260,7 +262,7 @@ class UiAutomator2Server {
|
|
|
260
262
|
this.log.info(`Using UIAutomator2 server from '${apkPath}' and test from '${testApkPath}'`);
|
|
261
263
|
}
|
|
262
264
|
|
|
263
|
-
const timeout = caps.uiautomator2ServerLaunchTimeout ||
|
|
265
|
+
const timeout = caps.uiautomator2ServerLaunchTimeout || SERVER_LAUNCH_TIMEOUT_MS;
|
|
264
266
|
const timer = new timing.Timer().start();
|
|
265
267
|
let retries = 0;
|
|
266
268
|
const maxRetries = 2;
|
|
@@ -344,81 +346,67 @@ class UiAutomator2Server {
|
|
|
344
346
|
}
|
|
345
347
|
|
|
346
348
|
async stopInstrumentationProcess () {
|
|
347
|
-
if (!this.instrumentationProcess) {
|
|
348
|
-
return;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
349
|
try {
|
|
352
|
-
if (this.instrumentationProcess
|
|
350
|
+
if (this.instrumentationProcess?.isRunning) {
|
|
353
351
|
await this.instrumentationProcess.stop();
|
|
354
352
|
}
|
|
355
353
|
} finally {
|
|
356
|
-
this.instrumentationProcess
|
|
354
|
+
this.instrumentationProcess?.removeAllListeners();
|
|
357
355
|
this.instrumentationProcess = null;
|
|
358
356
|
}
|
|
359
357
|
}
|
|
360
358
|
|
|
361
359
|
async deleteSession () {
|
|
362
360
|
this.log.debug('Deleting UiAutomator2 server session');
|
|
363
|
-
|
|
364
|
-
// delete the current session
|
|
361
|
+
|
|
365
362
|
try {
|
|
366
363
|
await this.jwproxy.command('/', 'DELETE');
|
|
367
364
|
} catch (err) {
|
|
368
|
-
this.log.warn(
|
|
369
|
-
|
|
365
|
+
this.log.warn(
|
|
366
|
+
`Did not get the confirmation of UiAutomator2 server session deletion. ` +
|
|
367
|
+
`Original error: ${err.message}`
|
|
368
|
+
);
|
|
370
369
|
}
|
|
370
|
+
|
|
371
|
+
// Theoretically we could also force kill instumentation and server processes
|
|
372
|
+
// without waiting for them to properly quit on their own.
|
|
373
|
+
// This may cause unexpected error reports in device logs though.
|
|
374
|
+
await this._waitForTermination();
|
|
375
|
+
|
|
371
376
|
try {
|
|
372
377
|
await this.stopInstrumentationProcess();
|
|
373
378
|
} catch (err) {
|
|
374
379
|
this.log.warn(`Could not stop the instrumentation process. Original error: ${err.message}`);
|
|
375
380
|
}
|
|
381
|
+
|
|
382
|
+
try {
|
|
383
|
+
await B.all([
|
|
384
|
+
this.adb.forceStop(SERVER_PACKAGE_ID),
|
|
385
|
+
this.adb.forceStop(SERVER_TEST_PACKAGE_ID)
|
|
386
|
+
]);
|
|
387
|
+
} catch {}
|
|
376
388
|
}
|
|
377
389
|
|
|
378
390
|
async cleanupAutomationLeftovers (strictCleanup = false) {
|
|
379
391
|
this.log.debug(`Performing ${strictCleanup ? 'strict' : 'shallow'} cleanup of automation leftovers`);
|
|
380
392
|
|
|
381
|
-
const
|
|
382
|
-
|
|
383
|
-
const waitStop = async () => {
|
|
384
|
-
// Wait for the process stop by sending a status request to the port.
|
|
385
|
-
// We observed the process stop could be delayed, thus causing unexpected crashes
|
|
386
|
-
// in the middle of the session preparation process. It caused an invalid session error response
|
|
387
|
-
// by the uia2 server, but that was because the process stop's delay.
|
|
388
|
-
const timeout = 3000;
|
|
389
|
-
try {
|
|
390
|
-
await waitForCondition(async () => {
|
|
391
|
-
try {
|
|
392
|
-
await axios({
|
|
393
|
-
url: `http://${this.host}:${this.systemPort}/status`,
|
|
394
|
-
timeout: axiosTimeout,
|
|
395
|
-
});
|
|
396
|
-
} catch {
|
|
397
|
-
return true;
|
|
398
|
-
}
|
|
399
|
-
}, {
|
|
400
|
-
waitMs: timeout,
|
|
401
|
-
intervalMs: 100,
|
|
402
|
-
});
|
|
403
|
-
} catch {
|
|
404
|
-
this.log.warn(`The ${SERVER_TEST_PACKAGE_ID} process might fail to stop within ${timeout}ms timeout.`);
|
|
405
|
-
}
|
|
406
|
-
};
|
|
407
|
-
|
|
393
|
+
const serverBase = `http://${this.host}:${this.systemPort}`;
|
|
408
394
|
try {
|
|
409
395
|
const {value} = (await axios({
|
|
410
|
-
url:
|
|
411
|
-
timeout:
|
|
396
|
+
url: `${serverBase}/sessions`,
|
|
397
|
+
timeout: SERVER_REQUEST_TIMEOUT_MS,
|
|
412
398
|
})).data;
|
|
413
399
|
const activeSessionIds = value.map(({id}) => id).filter(Boolean);
|
|
414
400
|
if (activeSessionIds.length) {
|
|
415
|
-
this.log.debug(`The following obsolete sessions are still running: ${
|
|
401
|
+
this.log.debug(`The following obsolete sessions are still running: ${activeSessionIds}`);
|
|
416
402
|
this.log.debug(`Cleaning up ${util.pluralize('obsolete session', activeSessionIds.length, true)}`);
|
|
417
403
|
await B.all(activeSessionIds
|
|
418
|
-
.map((id) => axios.delete(
|
|
404
|
+
.map((/** @type {string} */ id) => axios.delete(`${serverBase}/session/${id}`, {
|
|
405
|
+
timeout: SERVER_REQUEST_TIMEOUT_MS,
|
|
406
|
+
}))
|
|
419
407
|
);
|
|
420
|
-
// Let
|
|
421
|
-
await
|
|
408
|
+
// Let the server to be properly terminated before continuing
|
|
409
|
+
await this._waitForTermination();
|
|
422
410
|
} else {
|
|
423
411
|
this.log.debug('No obsolete sessions have been detected');
|
|
424
412
|
}
|
|
@@ -438,11 +426,35 @@ class UiAutomator2Server {
|
|
|
438
426
|
await this.adb.killProcessesByName('uiautomator');
|
|
439
427
|
} catch {}
|
|
440
428
|
}
|
|
441
|
-
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Blocks until UIA2 server stops running
|
|
433
|
+
* or SERVER_SHUTDOWN_TIMEOUT_MS expires
|
|
434
|
+
*
|
|
435
|
+
* @returns {Promise<void>}
|
|
436
|
+
*/
|
|
437
|
+
async _waitForTermination() {
|
|
438
|
+
try {
|
|
439
|
+
await waitForCondition(async () => {
|
|
440
|
+
try {
|
|
441
|
+
return !(await this.adb.processExists(SERVER_PACKAGE_ID));
|
|
442
|
+
} catch {
|
|
443
|
+
return true;
|
|
444
|
+
}
|
|
445
|
+
}, {
|
|
446
|
+
waitMs: SERVER_SHUTDOWN_TIMEOUT_MS,
|
|
447
|
+
intervalMs: 300,
|
|
448
|
+
});
|
|
449
|
+
} catch {
|
|
450
|
+
this.log.warn(
|
|
451
|
+
`The UIA2 server did has not been terminated within ${SERVER_SHUTDOWN_TIMEOUT_MS}ms timeout. ` +
|
|
452
|
+
`Continuing anyway`
|
|
453
|
+
);
|
|
454
|
+
}
|
|
442
455
|
}
|
|
443
456
|
}
|
|
444
457
|
|
|
445
|
-
export { UiAutomator2Server, INSTRUMENTATION_TARGET, SERVER_PACKAGE_ID, SERVER_TEST_PACKAGE_ID };
|
|
446
458
|
export default UiAutomator2Server;
|
|
447
459
|
|
|
448
460
|
/**
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-uiautomator2-driver",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "appium-uiautomator2-driver",
|
|
9
|
-
"version": "4.1.
|
|
9
|
+
"version": "4.1.4",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"appium-adb": "^12.12.0",
|
|
13
|
-
"appium-android-driver": "^10.2.
|
|
13
|
+
"appium-android-driver": "^10.2.3",
|
|
14
14
|
"appium-uiautomator2-server": "^7.2.0",
|
|
15
15
|
"asyncbox": "^3.0.0",
|
|
16
16
|
"axios": "^1.6.5",
|
|
@@ -68,17 +68,17 @@
|
|
|
68
68
|
}
|
|
69
69
|
},
|
|
70
70
|
"node_modules/@appium/base-driver": {
|
|
71
|
-
"version": "9.16.
|
|
72
|
-
"resolved": "https://registry.npmjs.org/@appium/base-driver/-/base-driver-9.16.
|
|
73
|
-
"integrity": "sha512
|
|
71
|
+
"version": "9.16.4",
|
|
72
|
+
"resolved": "https://registry.npmjs.org/@appium/base-driver/-/base-driver-9.16.4.tgz",
|
|
73
|
+
"integrity": "sha512-tWWf2vtJvDaKRtulqqMAq2YfWdtTDdVGnrtmp2DeaJX3rMjeRQPQ4Le+zMUdLIGSKNHZ9/f1BYnTtA1MToeEvQ==",
|
|
74
74
|
"license": "Apache-2.0",
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@appium/support": "^6.0.
|
|
76
|
+
"@appium/support": "^6.0.8",
|
|
77
77
|
"@appium/types": "^0.25.2",
|
|
78
78
|
"@colors/colors": "1.6.0",
|
|
79
79
|
"async-lock": "1.4.1",
|
|
80
80
|
"asyncbox": "3.0.0",
|
|
81
|
-
"axios": "1.8.
|
|
81
|
+
"axios": "1.8.3",
|
|
82
82
|
"bluebird": "3.7.2",
|
|
83
83
|
"body-parser": "1.20.3",
|
|
84
84
|
"express": "4.21.2",
|
|
@@ -103,9 +103,9 @@
|
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
105
|
"node_modules/@appium/base-driver/node_modules/axios": {
|
|
106
|
-
"version": "1.8.
|
|
107
|
-
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.
|
|
108
|
-
"integrity": "sha512-
|
|
106
|
+
"version": "1.8.3",
|
|
107
|
+
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz",
|
|
108
|
+
"integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==",
|
|
109
109
|
"license": "MIT",
|
|
110
110
|
"dependencies": {
|
|
111
111
|
"follow-redirects": "^1.15.6",
|
|
@@ -114,13 +114,13 @@
|
|
|
114
114
|
}
|
|
115
115
|
},
|
|
116
116
|
"node_modules/@appium/base-plugin": {
|
|
117
|
-
"version": "2.3.
|
|
118
|
-
"resolved": "https://registry.npmjs.org/@appium/base-plugin/-/base-plugin-2.3.
|
|
119
|
-
"integrity": "sha512
|
|
117
|
+
"version": "2.3.5",
|
|
118
|
+
"resolved": "https://registry.npmjs.org/@appium/base-plugin/-/base-plugin-2.3.5.tgz",
|
|
119
|
+
"integrity": "sha512-/9WvjBvXWE5U5Pg7tvcfj/9Dv1tzLaThgUAgDGDh5Ve2ZXBAznz0fR6NSbjyeaFR7UbroF3f9sjlzPNVM180PA==",
|
|
120
120
|
"license": "Apache-2.0",
|
|
121
121
|
"dependencies": {
|
|
122
|
-
"@appium/base-driver": "^9.16.
|
|
123
|
-
"@appium/support": "^6.0.
|
|
122
|
+
"@appium/base-driver": "^9.16.4",
|
|
123
|
+
"@appium/support": "^6.0.8"
|
|
124
124
|
},
|
|
125
125
|
"engines": {
|
|
126
126
|
"node": "^14.17.0 || ^16.13.0 || >=18.0.0",
|
|
@@ -128,12 +128,12 @@
|
|
|
128
128
|
}
|
|
129
129
|
},
|
|
130
130
|
"node_modules/@appium/docutils": {
|
|
131
|
-
"version": "1.0.
|
|
132
|
-
"resolved": "https://registry.npmjs.org/@appium/docutils/-/docutils-1.0.
|
|
133
|
-
"integrity": "sha512-
|
|
131
|
+
"version": "1.0.34",
|
|
132
|
+
"resolved": "https://registry.npmjs.org/@appium/docutils/-/docutils-1.0.34.tgz",
|
|
133
|
+
"integrity": "sha512-a3zzrx2e/xzoNAbKncuyDfUhExEvX+9wV2Lnb+9cfKlhMAqFudRcTF8aNf7dGVsZjfXPNH049qG6htL8Mn2Gow==",
|
|
134
134
|
"license": "Apache-2.0",
|
|
135
135
|
"dependencies": {
|
|
136
|
-
"@appium/support": "^6.0.
|
|
136
|
+
"@appium/support": "^6.0.8",
|
|
137
137
|
"@appium/tsconfig": "^0.3.5",
|
|
138
138
|
"@sliphua/lilconfig-ts-loader": "3.2.2",
|
|
139
139
|
"chalk": "4.1.2",
|
|
@@ -192,9 +192,9 @@
|
|
|
192
192
|
}
|
|
193
193
|
},
|
|
194
194
|
"node_modules/@appium/support": {
|
|
195
|
-
"version": "6.0.
|
|
196
|
-
"resolved": "https://registry.npmjs.org/@appium/support/-/support-6.0.
|
|
197
|
-
"integrity": "sha512-
|
|
195
|
+
"version": "6.0.8",
|
|
196
|
+
"resolved": "https://registry.npmjs.org/@appium/support/-/support-6.0.8.tgz",
|
|
197
|
+
"integrity": "sha512-vhQtJwD89BbPDb7n+wvYFWKBF1sCd9XS/yTR8eA5mRGM+frCS9mlxy9VNAcjEbxfkLwSa4iqRhp3MzK8L4w4KA==",
|
|
198
198
|
"license": "Apache-2.0",
|
|
199
199
|
"dependencies": {
|
|
200
200
|
"@appium/logger": "^1.6.1",
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
"@appium/types": "^0.25.2",
|
|
203
203
|
"@colors/colors": "1.6.0",
|
|
204
204
|
"archiver": "7.0.1",
|
|
205
|
-
"axios": "1.8.
|
|
205
|
+
"axios": "1.8.3",
|
|
206
206
|
"base64-stream": "1.0.0",
|
|
207
207
|
"bluebird": "3.7.2",
|
|
208
208
|
"bplist-creator": "0.1.1",
|
|
@@ -243,9 +243,9 @@
|
|
|
243
243
|
}
|
|
244
244
|
},
|
|
245
245
|
"node_modules/@appium/support/node_modules/axios": {
|
|
246
|
-
"version": "1.8.
|
|
247
|
-
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.
|
|
248
|
-
"integrity": "sha512-
|
|
246
|
+
"version": "1.8.3",
|
|
247
|
+
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz",
|
|
248
|
+
"integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==",
|
|
249
249
|
"license": "MIT",
|
|
250
250
|
"dependencies": {
|
|
251
251
|
"follow-redirects": "^1.15.6",
|
|
@@ -562,18 +562,18 @@
|
|
|
562
562
|
}
|
|
563
563
|
},
|
|
564
564
|
"node_modules/appium": {
|
|
565
|
-
"version": "2.17.
|
|
566
|
-
"resolved": "https://registry.npmjs.org/appium/-/appium-2.17.
|
|
567
|
-
"integrity": "sha512-
|
|
565
|
+
"version": "2.17.1",
|
|
566
|
+
"resolved": "https://registry.npmjs.org/appium/-/appium-2.17.1.tgz",
|
|
567
|
+
"integrity": "sha512-aE4WuM+/gFblteSYxAxDkdeSFCCMM791KSM9msUvNnfRIn/ZNAvj6HkobCAzGMnFBkYYOISD5diXNPFo/a9rsQ==",
|
|
568
568
|
"hasInstallScript": true,
|
|
569
569
|
"license": "Apache-2.0",
|
|
570
570
|
"dependencies": {
|
|
571
|
-
"@appium/base-driver": "^9.16.
|
|
572
|
-
"@appium/base-plugin": "^2.3.
|
|
573
|
-
"@appium/docutils": "^1.0.
|
|
571
|
+
"@appium/base-driver": "^9.16.4",
|
|
572
|
+
"@appium/base-plugin": "^2.3.5",
|
|
573
|
+
"@appium/docutils": "^1.0.34",
|
|
574
574
|
"@appium/logger": "^1.6.1",
|
|
575
575
|
"@appium/schema": "^0.8.1",
|
|
576
|
-
"@appium/support": "^6.0.
|
|
576
|
+
"@appium/support": "^6.0.8",
|
|
577
577
|
"@appium/types": "^0.25.2",
|
|
578
578
|
"@sidvind/better-ajv-errors": "3.0.1",
|
|
579
579
|
"ajv": "8.17.1",
|
|
@@ -581,7 +581,7 @@
|
|
|
581
581
|
"argparse": "2.0.1",
|
|
582
582
|
"async-lock": "1.4.1",
|
|
583
583
|
"asyncbox": "3.0.0",
|
|
584
|
-
"axios": "1.8.
|
|
584
|
+
"axios": "1.8.3",
|
|
585
585
|
"bluebird": "3.7.2",
|
|
586
586
|
"lilconfig": "3.1.3",
|
|
587
587
|
"lodash": "4.17.21",
|
|
@@ -629,9 +629,9 @@
|
|
|
629
629
|
}
|
|
630
630
|
},
|
|
631
631
|
"node_modules/appium-android-driver": {
|
|
632
|
-
"version": "10.2.
|
|
633
|
-
"resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-10.2.
|
|
634
|
-
"integrity": "sha512-
|
|
632
|
+
"version": "10.2.3",
|
|
633
|
+
"resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-10.2.3.tgz",
|
|
634
|
+
"integrity": "sha512-urP4jqS+rl8oU5zAyCYCyUJ+1Hi58rLB4gvfXIS2MCqe7AzLC3eoAoPgNWc0/A+lCBja5INk8SCpphBSoC+FXg==",
|
|
635
635
|
"license": "Apache-2.0",
|
|
636
636
|
"dependencies": {
|
|
637
637
|
"@appium/support": "^6.0.0",
|
|
@@ -662,9 +662,9 @@
|
|
|
662
662
|
}
|
|
663
663
|
},
|
|
664
664
|
"node_modules/appium-chromedriver": {
|
|
665
|
-
"version": "7.0.
|
|
666
|
-
"resolved": "https://registry.npmjs.org/appium-chromedriver/-/appium-chromedriver-7.0.
|
|
667
|
-
"integrity": "sha512-
|
|
665
|
+
"version": "7.0.10",
|
|
666
|
+
"resolved": "https://registry.npmjs.org/appium-chromedriver/-/appium-chromedriver-7.0.10.tgz",
|
|
667
|
+
"integrity": "sha512-ksW8PLm5cxzAUEnaesjSJ58e+Ey3baXtEdGZNyvzzFOuaO3NfGDN/g1RojQNL+N9QkMFy3gylwkrCcy+yIOuDw==",
|
|
668
668
|
"license": "Apache-2.0",
|
|
669
669
|
"dependencies": {
|
|
670
670
|
"@appium/base-driver": "^9.1.0",
|
|
@@ -697,9 +697,9 @@
|
|
|
697
697
|
}
|
|
698
698
|
},
|
|
699
699
|
"node_modules/appium/node_modules/axios": {
|
|
700
|
-
"version": "1.8.
|
|
701
|
-
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.
|
|
702
|
-
"integrity": "sha512-
|
|
700
|
+
"version": "1.8.3",
|
|
701
|
+
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz",
|
|
702
|
+
"integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==",
|
|
703
703
|
"license": "MIT",
|
|
704
704
|
"dependencies": {
|
|
705
705
|
"follow-redirects": "^1.15.6",
|
|
@@ -794,9 +794,9 @@
|
|
|
794
794
|
"license": "MIT"
|
|
795
795
|
},
|
|
796
796
|
"node_modules/axios": {
|
|
797
|
-
"version": "1.8.
|
|
798
|
-
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.
|
|
799
|
-
"integrity": "sha512-
|
|
797
|
+
"version": "1.8.4",
|
|
798
|
+
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz",
|
|
799
|
+
"integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==",
|
|
800
800
|
"license": "MIT",
|
|
801
801
|
"dependencies": {
|
|
802
802
|
"follow-redirects": "^1.15.6",
|
|
@@ -1420,9 +1420,9 @@
|
|
|
1420
1420
|
}
|
|
1421
1421
|
},
|
|
1422
1422
|
"node_modules/css-selector-parser": {
|
|
1423
|
-
"version": "3.
|
|
1424
|
-
"resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.
|
|
1425
|
-
"integrity": "sha512-
|
|
1423
|
+
"version": "3.1.1",
|
|
1424
|
+
"resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.1.1.tgz",
|
|
1425
|
+
"integrity": "sha512-Y+DuvJ7JAjpL1f4DeILe5sXCC3kRXMl0DxM4lAWbS8/jEZ29o3V0L5TL6zIifj4Csmj6c+jiF2ENjida2OVOGA==",
|
|
1426
1426
|
"funding": [
|
|
1427
1427
|
{
|
|
1428
1428
|
"type": "github",
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"automated testing",
|
|
8
8
|
"android"
|
|
9
9
|
],
|
|
10
|
-
"version": "4.1.
|
|
10
|
+
"version": "4.1.4",
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/appium/appium-uiautomator2-driver/issues"
|
|
13
13
|
},
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"appium-adb": "^12.12.0",
|
|
60
|
-
"appium-android-driver": "^10.2.
|
|
60
|
+
"appium-android-driver": "^10.2.3",
|
|
61
61
|
"appium-uiautomator2-server": "^7.2.0",
|
|
62
62
|
"asyncbox": "^3.0.0",
|
|
63
63
|
"axios": "^1.6.5",
|