appium-uiautomator2-driver 6.2.1 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -87,6 +87,21 @@ export async function mobileGetDeviceInfo() {
87
87
  );
88
88
  }
89
89
 
90
+ /**
91
+ * Resets the accessibility cache on the device.
92
+ * This can be useful when the accessibility service cache becomes stale
93
+ * and needs to be refreshed to reflect the current UI state.
94
+ * @this {AndroidUiautomator2Driver}
95
+ * @returns {Promise<void>}
96
+ */
97
+ export async function mobileResetAccessibilityCache() {
98
+ await this.uiautomator2.jwproxy.command(
99
+ '/reset_ax_cache',
100
+ 'POST',
101
+ {}
102
+ );
103
+ }
104
+
90
105
  /**
91
106
  * @template [T=any]
92
107
  * @typedef {import('@appium/types').StringRecord<T>} StringRecord
package/lib/driver.ts CHANGED
@@ -112,6 +112,7 @@ import {
112
112
  openNotifications,
113
113
  suspendChromedriverProxy,
114
114
  mobileGetDeviceInfo,
115
+ mobileResetAccessibilityCache,
115
116
  } from './commands/misc';
116
117
  import {
117
118
  setUrl,
@@ -1055,6 +1056,7 @@ class AndroidUiautomator2Driver
1055
1056
  openNotifications = openNotifications;
1056
1057
  suspendChromedriverProxy = suspendChromedriverProxy as any;
1057
1058
  mobileGetDeviceInfo = mobileGetDeviceInfo;
1059
+ mobileResetAccessibilityCache = mobileResetAccessibilityCache;
1058
1060
 
1059
1061
  getClipboard = getClipboard;
1060
1062
  setClipboard = setClipboard;
@@ -259,4 +259,8 @@ export const executeMethodMap = {
259
259
  'mobile: getClipboard': {
260
260
  command: 'getClipboard',
261
261
  },
262
+
263
+ 'mobile: resetAccessibilityCache': {
264
+ command: 'mobileResetAccessibilityCache',
265
+ },
262
266
  } as const satisfies ExecuteMethodMap<any>;
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "appium-uiautomator2-driver",
3
- "version": "6.2.1",
3
+ "version": "6.4.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appium-uiautomator2-driver",
9
- "version": "6.2.1",
9
+ "version": "6.4.0",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "appium-adb": "^14.0.0",
13
- "appium-android-driver": "^12.2.1",
14
- "appium-uiautomator2-server": "^9.0.0",
13
+ "appium-android-driver": "^12.3.0",
14
+ "appium-uiautomator2-server": "^9.2.0",
15
15
  "asyncbox": "^3.0.0",
16
16
  "axios": "^1.12.2",
17
17
  "bluebird": "^3.5.1",
@@ -40,7 +40,6 @@
40
40
  "@types/source-map-support": "^0.x",
41
41
  "@types/ws": "^8.5.4",
42
42
  "@xmldom/xmldom": "^0.x",
43
- "android-apidemos": "^5.0.0",
44
43
  "chai": "^6.0.0",
45
44
  "chai-as-promised": "^8.0.0",
46
45
  "conventional-changelog-conventionalcommits": "^9.0.0",
@@ -600,9 +599,9 @@
600
599
  }
601
600
  },
602
601
  "node_modules/appium-android-driver": {
603
- "version": "12.2.1",
604
- "resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-12.2.1.tgz",
605
- "integrity": "sha512-IaLJilW/S5r8azFoCwApJsc1ragdIWPKlqWCPwaiDnN3wiVwvk7XOWWxvmoAQWwAvxOME6hprPg6nuKunYQYPQ==",
602
+ "version": "12.3.0",
603
+ "resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-12.3.0.tgz",
604
+ "integrity": "sha512-EhtSzTRgVKh51cwSSfw/198tk/fF9Psvx+y3Wklk3CtdFPAcTyIqmtfQigt1xBnYOvOm/NxV6qViZBLuN6RoEg==",
606
605
  "license": "Apache-2.0",
607
606
  "dependencies": {
608
607
  "@appium/support": "^7.0.0-rc.1",
@@ -632,9 +631,9 @@
632
631
  }
633
632
  },
634
633
  "node_modules/appium-chromedriver": {
635
- "version": "8.0.21",
636
- "resolved": "https://registry.npmjs.org/appium-chromedriver/-/appium-chromedriver-8.0.21.tgz",
637
- "integrity": "sha512-l5SUc+VAykdFvwWwA7C6Kg4SdH45d1N/lyGvj/60b8W3Fv/HhfLDM0b1yhjH+leO7bBjS80iQI+z+P+1Fk5ydw==",
634
+ "version": "8.0.22",
635
+ "resolved": "https://registry.npmjs.org/appium-chromedriver/-/appium-chromedriver-8.0.22.tgz",
636
+ "integrity": "sha512-EPKlIzaNKid0Vz7zlEl6eFs53ob5/NxIWcLvHEohnv+cVDG5N6lDvsM/sjrX0By5nBL7/6R6T6i52casIZEaiA==",
638
637
  "license": "Apache-2.0",
639
638
  "dependencies": {
640
639
  "@appium/base-driver": "^10.0.0-rc.2",
@@ -657,9 +656,9 @@
657
656
  }
658
657
  },
659
658
  "node_modules/appium-uiautomator2-server": {
660
- "version": "9.1.3",
661
- "resolved": "https://registry.npmjs.org/appium-uiautomator2-server/-/appium-uiautomator2-server-9.1.3.tgz",
662
- "integrity": "sha512-TOV6QgeV+DGohP22V/9cQnNJdgRC7Arw8XbRGZup+Gu9xRThdqsXWDx/UlfNPwG+5ckMxwmJ8ySfodYjCPdQpw==",
659
+ "version": "9.3.0",
660
+ "resolved": "https://registry.npmjs.org/appium-uiautomator2-server/-/appium-uiautomator2-server-9.3.0.tgz",
661
+ "integrity": "sha512-JXyFhHZs4Bwbn+p08KCBJSuhM/U4zJep9FnDkkJdTgBO38CQDDOxXCyDEKQsqlTC2xeo5QjKvg7moGRptZWxXg==",
663
662
  "license": "Apache-2.0",
664
663
  "engines": {
665
664
  "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
@@ -728,9 +727,9 @@
728
727
  }
729
728
  },
730
729
  "node_modules/archiver-utils/node_modules/glob": {
731
- "version": "10.4.5",
732
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
733
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
730
+ "version": "10.5.0",
731
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
732
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
734
733
  "license": "ISC",
735
734
  "dependencies": {
736
735
  "foreground-child": "^3.1.0",
@@ -920,12 +919,6 @@
920
919
  "node": ">= 0.8"
921
920
  }
922
921
  },
923
- "node_modules/basic-auth/node_modules/safe-buffer": {
924
- "version": "5.1.2",
925
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
926
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
927
- "license": "MIT"
928
- },
929
922
  "node_modules/big-integer": {
930
923
  "version": "1.6.52",
931
924
  "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
@@ -1343,15 +1336,16 @@
1343
1336
  "license": "ISC"
1344
1337
  },
1345
1338
  "node_modules/content-disposition": {
1346
- "version": "1.0.0",
1347
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz",
1348
- "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==",
1339
+ "version": "1.0.1",
1340
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz",
1341
+ "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==",
1349
1342
  "license": "MIT",
1350
- "dependencies": {
1351
- "safe-buffer": "5.2.1"
1352
- },
1353
1343
  "engines": {
1354
- "node": ">= 0.6"
1344
+ "node": ">=18"
1345
+ },
1346
+ "funding": {
1347
+ "type": "opencollective",
1348
+ "url": "https://opencollective.com/express"
1355
1349
  }
1356
1350
  },
1357
1351
  "node_modules/content-type": {
@@ -2190,13 +2184,6 @@
2190
2184
  "util-deprecate": "~1.0.1"
2191
2185
  }
2192
2186
  },
2193
- "node_modules/hpack.js/node_modules/safe-buffer": {
2194
- "version": "5.1.2",
2195
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2196
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2197
- "license": "MIT",
2198
- "optional": true
2199
- },
2200
2187
  "node_modules/hpack.js/node_modules/string_decoder": {
2201
2188
  "version": "1.1.1",
2202
2189
  "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -2215,28 +2202,23 @@
2215
2202
  "optional": true
2216
2203
  },
2217
2204
  "node_modules/http-errors": {
2218
- "version": "2.0.0",
2219
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
2220
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
2205
+ "version": "2.0.1",
2206
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
2207
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
2221
2208
  "license": "MIT",
2222
2209
  "dependencies": {
2223
- "depd": "2.0.0",
2224
- "inherits": "2.0.4",
2225
- "setprototypeof": "1.2.0",
2226
- "statuses": "2.0.1",
2227
- "toidentifier": "1.0.1"
2210
+ "depd": "~2.0.0",
2211
+ "inherits": "~2.0.4",
2212
+ "setprototypeof": "~1.2.0",
2213
+ "statuses": "~2.0.2",
2214
+ "toidentifier": "~1.0.1"
2228
2215
  },
2229
2216
  "engines": {
2230
2217
  "node": ">= 0.8"
2231
- }
2232
- },
2233
- "node_modules/http-errors/node_modules/statuses": {
2234
- "version": "2.0.1",
2235
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
2236
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
2237
- "license": "MIT",
2238
- "engines": {
2239
- "node": ">= 0.8"
2218
+ },
2219
+ "funding": {
2220
+ "type": "opencollective",
2221
+ "url": "https://opencollective.com/express"
2240
2222
  }
2241
2223
  },
2242
2224
  "node_modules/http-status-codes": {
@@ -2530,12 +2512,6 @@
2530
2512
  "util-deprecate": "~1.0.1"
2531
2513
  }
2532
2514
  },
2533
- "node_modules/lazystream/node_modules/safe-buffer": {
2534
- "version": "5.1.2",
2535
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2536
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2537
- "license": "MIT"
2538
- },
2539
2515
  "node_modules/lazystream/node_modules/string_decoder": {
2540
2516
  "version": "1.1.1",
2541
2517
  "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -2720,15 +2696,19 @@
2720
2696
  }
2721
2697
  },
2722
2698
  "node_modules/mime-types": {
2723
- "version": "3.0.1",
2724
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
2725
- "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
2699
+ "version": "3.0.2",
2700
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
2701
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
2726
2702
  "license": "MIT",
2727
2703
  "dependencies": {
2728
2704
  "mime-db": "^1.54.0"
2729
2705
  },
2730
2706
  "engines": {
2731
- "node": ">= 0.6"
2707
+ "node": ">=18"
2708
+ },
2709
+ "funding": {
2710
+ "type": "opencollective",
2711
+ "url": "https://opencollective.com/express"
2732
2712
  }
2733
2713
  },
2734
2714
  "node_modules/mimic-fn": {
@@ -3253,15 +3233,15 @@
3253
3233
  }
3254
3234
  },
3255
3235
  "node_modules/raw-body": {
3256
- "version": "3.0.1",
3257
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.1.tgz",
3258
- "integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==",
3236
+ "version": "3.0.2",
3237
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
3238
+ "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
3259
3239
  "license": "MIT",
3260
3240
  "dependencies": {
3261
- "bytes": "3.1.2",
3262
- "http-errors": "2.0.0",
3263
- "iconv-lite": "0.7.0",
3264
- "unpipe": "1.0.0"
3241
+ "bytes": "~3.1.2",
3242
+ "http-errors": "~2.0.1",
3243
+ "iconv-lite": "~0.7.0",
3244
+ "unpipe": "~1.0.0"
3265
3245
  },
3266
3246
  "engines": {
3267
3247
  "node": ">= 0.10"
@@ -3446,23 +3426,9 @@
3446
3426
  }
3447
3427
  },
3448
3428
  "node_modules/safe-buffer": {
3449
- "version": "5.2.1",
3450
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
3451
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
3452
- "funding": [
3453
- {
3454
- "type": "github",
3455
- "url": "https://github.com/sponsors/feross"
3456
- },
3457
- {
3458
- "type": "patreon",
3459
- "url": "https://www.patreon.com/feross"
3460
- },
3461
- {
3462
- "type": "consulting",
3463
- "url": "https://feross.org/support"
3464
- }
3465
- ],
3429
+ "version": "5.1.2",
3430
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3431
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3466
3432
  "license": "MIT"
3467
3433
  },
3468
3434
  "node_modules/safe-stable-stringify": {
@@ -3555,6 +3521,26 @@
3555
3521
  "node": ">= 0.6"
3556
3522
  }
3557
3523
  },
3524
+ "node_modules/serve-favicon/node_modules/safe-buffer": {
3525
+ "version": "5.2.1",
3526
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
3527
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
3528
+ "funding": [
3529
+ {
3530
+ "type": "github",
3531
+ "url": "https://github.com/sponsors/feross"
3532
+ },
3533
+ {
3534
+ "type": "patreon",
3535
+ "url": "https://www.patreon.com/feross"
3536
+ },
3537
+ {
3538
+ "type": "consulting",
3539
+ "url": "https://feross.org/support"
3540
+ }
3541
+ ],
3542
+ "license": "MIT"
3543
+ },
3558
3544
  "node_modules/serve-static": {
3559
3545
  "version": "2.2.0",
3560
3546
  "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz",
@@ -3893,6 +3879,26 @@
3893
3879
  "safe-buffer": "~5.2.0"
3894
3880
  }
3895
3881
  },
3882
+ "node_modules/string_decoder/node_modules/safe-buffer": {
3883
+ "version": "5.2.1",
3884
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
3885
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
3886
+ "funding": [
3887
+ {
3888
+ "type": "github",
3889
+ "url": "https://github.com/sponsors/feross"
3890
+ },
3891
+ {
3892
+ "type": "patreon",
3893
+ "url": "https://www.patreon.com/feross"
3894
+ },
3895
+ {
3896
+ "type": "consulting",
3897
+ "url": "https://feross.org/support"
3898
+ }
3899
+ ],
3900
+ "license": "MIT"
3901
+ },
3896
3902
  "node_modules/string-width": {
3897
3903
  "version": "5.1.2",
3898
3904
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "automated testing",
8
8
  "android"
9
9
  ],
10
- "version": "6.2.1",
10
+ "version": "6.4.0",
11
11
  "bugs": {
12
12
  "url": "https://github.com/appium/appium-uiautomator2-driver/issues"
13
13
  },
@@ -57,8 +57,8 @@
57
57
  },
58
58
  "dependencies": {
59
59
  "appium-adb": "^14.0.0",
60
- "appium-android-driver": "^12.2.1",
61
- "appium-uiautomator2-server": "^9.0.0",
60
+ "appium-android-driver": "^12.3.0",
61
+ "appium-uiautomator2-server": "^9.2.0",
62
62
  "asyncbox": "^3.0.0",
63
63
  "axios": "^1.12.2",
64
64
  "bluebird": "^3.5.1",
@@ -87,7 +87,6 @@
87
87
  "@types/source-map-support": "^0.x",
88
88
  "@types/ws": "^8.5.4",
89
89
  "@xmldom/xmldom": "^0.x",
90
- "android-apidemos": "^5.0.0",
91
90
  "chai": "^6.0.0",
92
91
  "chai-as-promised": "^8.0.0",
93
92
  "conventional-changelog-conventionalcommits": "^9.0.0",
@@ -19,13 +19,6 @@ checkTestPrerequisites() {
19
19
  adb devices
20
20
  exit 1
21
21
  fi
22
-
23
- # Check if android-apidemos is installed
24
- if [ ! -f "node_modules/android-apidemos/apks/ApiDemos-debug.apk" ]; then
25
- echo "Error: android-apidemos package not found"
26
- echo "Installing android-apidemos package..."
27
- npm install android-apidemos --save-dev
28
- fi
29
22
  }
30
23
 
31
24
  checkTestPrerequisites