appium-uiautomator2-driver 7.5.1 → 7.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [7.6.0](https://github.com/appium/appium-uiautomator2-driver/compare/v7.5.2...v7.6.0) (2026-06-04)
2
+
3
+ ### Features
4
+
5
+ * Automatically terminate obsolete sessions using device id to be claimed by the current one ([#1006](https://github.com/appium/appium-uiautomator2-driver/issues/1006)) ([9f71e9f](https://github.com/appium/appium-uiautomator2-driver/commit/9f71e9f0d072dce2ec049fa219f57feb660c8bf6))
6
+
7
+ ## [7.5.2](https://github.com/appium/appium-uiautomator2-driver/compare/v7.5.1...v7.5.2) (2026-05-24)
8
+
9
+ ### Miscellaneous Chores
10
+
11
+ * Bump uia2-server ([#1004](https://github.com/appium/appium-uiautomator2-driver/issues/1004)) ([ce0d583](https://github.com/appium/appium-uiautomator2-driver/commit/ce0d5836c1ccd9f79335112c7b19b68e2502298c))
12
+
1
13
  ## [7.5.1](https://github.com/appium/appium-uiautomator2-driver/compare/v7.5.0...v7.5.1) (2026-05-21)
2
14
 
3
15
  ### Miscellaneous Chores
package/README.md CHANGED
@@ -10,6 +10,8 @@ Appium UiAutomator2 Driver is a test automation framework for Android devices. A
10
10
 
11
11
  UiAutomator2 Driver proxies most of the commands to [UiAutomator2 server](https://github.com/appium/appium-uiautomator2-server), which uses Google's [UiAutomator](https://developer.android.com/training/testing/ui-automator) framework under the hood. Some commands are proxied directly to [appium-adb](https://github.com/appium/appium-adb) and other helpers built on top of Android platform tools.
12
12
 
13
+ See the [end-to-end architecture diagram](./docs/architecture.md).
14
+
13
15
  > [!IMPORTANT]
14
16
  > Since major version *5.0.0*, this driver is only compatible with Appium 3. Use the `appium driver install uiautomator2`
15
17
  > command to add it to your distribution.
@@ -2099,7 +2101,11 @@ The general resources naming convention for Android apps is `<app_id>:id/<resour
2099
2101
 
2100
2102
  ### ClassCastException: java.util.ArrayList$ListItr cannot be cast to org.eclipse.wst.xml.xpath2.processor
2101
2103
 
2102
- This exception happens due to a known bug in the [Eclipse's Psychopath](https://wiki.eclipse.org/PsychoPathXPathProcessor) library used by UiAutomator2 driver to support [XPath2](https://www.w3.org/TR/xpath20/) syntax. The issue has been observed while using `following::` or `preceding::` axes in xpath queries. Unfortunately, this library has not been maintained for quite a while, and there is no good open source alternative to it. The only known workaround would be to forcefully switch the driver's XPath processor to the standard Android's Apache Harmony-based XPath1, which does not have this issue (but also does not support XPath2 syntax). See the Appium issue [#16142](https://github.com/appium/appium/issues/16142#issuecomment-1003954166) for more details.
2104
+ This exception was caused by a bug in the [Eclipse's Psychopath](https://wiki.eclipse.org/PsychoPathXPathProcessor) library used by UiAutomator2 driver to support [XPath2](https://www.w3.org/TR/xpath20/) syntax. The issue was observed while using `following::` or `preceding::` axes in xpath queries (for example, `(//android.widget.TextView[@text='some, text']/following::android.widget.ImageButton)[1]`).
2105
+
2106
+ The bug has been fixed in UiAutomator2 driver version `7.5.2+`. Upgrade to use XPath2 `following::` and `preceding::` axes in your element lookup queries.
2107
+
2108
+ If you still encounter this exception on an older driver version, the workaround is to forcefully switch the driver's XPath processor to the standard Android's Apache Harmony-based XPath1, which does not have this issue (but also does not support XPath2 syntax). See the Appium issue [#16142](https://github.com/appium/appium/issues/16142#issuecomment-1003954166) for more details.
2103
2109
 
2104
2110
  ### A gesture, like scroll or swipe, does not have any effect / It is unclear how to do it
2105
2111
 
@@ -1070,6 +1070,7 @@ declare class AndroidUiautomator2Driver extends AndroidDriver implements Externa
1070
1070
  createSession(w3cCaps1: W3CUiautomator2DriverCaps, w3cCaps2?: W3CUiautomator2DriverCaps, w3cCaps3?: W3CUiautomator2DriverCaps, driverData?: DriverData[]): Promise<any>;
1071
1071
  getDeviceDetails(): Promise<Uiautomator2DeviceDetails>;
1072
1072
  getSession(): Promise<SingularSessionData<Uiautomator2Constraints>>;
1073
+ onIpcInit(): Promise<void>;
1073
1074
  deleteSession(): Promise<void>;
1074
1075
  onSettingsUpdate(): Promise<void>;
1075
1076
  proxyActive(sessionId: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ const navigation_1 = require("./commands/navigation");
28
28
  const screenshot_1 = require("./commands/screenshot");
29
29
  const viewport_1 = require("./commands/viewport");
30
30
  const execute_method_map_1 = require("./execute-method-map");
31
+ const session_claim_handler_1 = require("./session-claim-handler");
31
32
  // NO_PROXY contains the paths that we never want to proxy to UiAutomator2 server.
32
33
  // TODO: Add the list of paths that we never want to proxy to UiAutomator2 server.
33
34
  // TODO: Need to segregate the paths better way using regular expressions wherever applicable.
@@ -277,6 +278,8 @@ class AndroidUiautomator2Driver extends appium_android_driver_1.AndroidDriver {
277
278
  this.opts.udid = udid;
278
279
  // @ts-expect-error do not put random stuff on opts
279
280
  this.opts.emPort = emPort;
281
+ await session_claim_handler_1.sessionClaimHandler.registerActiveSession(this);
282
+ await session_claim_handler_1.sessionClaimHandler.claimSessionUdid(this);
280
283
  // now that we know our java version and device info, we can create our
281
284
  // ADB instance
282
285
  this.adb = await this.createADB();
@@ -333,7 +336,11 @@ class AndroidUiautomator2Driver extends appium_android_driver_1.AndroidDriver {
333
336
  const uia2Data = (await this.requireUiautomator2().jwproxy.command('/', 'GET', {}));
334
337
  return { ...sessionData, ...uia2Data };
335
338
  }
339
+ async onIpcInit() {
340
+ await session_claim_handler_1.sessionClaimHandler.registerActiveSession(this);
341
+ }
336
342
  async deleteSession() {
343
+ session_claim_handler_1.sessionClaimHandler.unregisterActiveSession(this);
337
344
  this.log.debug('Deleting UiAutomator2 session');
338
345
  const screenRecordingStopTasks = [
339
346
  async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare const log: import("@appium/types").AppiumLogger;
1
+ import type { AppiumLogger } from '@appium/types';
2
+ export declare const log: AppiumLogger;
2
3
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG,sCAAmC,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,eAAO,MAAM,GAAG,EAAE,YAA+C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":";;;AAAA,4CAAsC;AAEzB,QAAA,GAAG,GAAG,gBAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":";;;AAAA,4CAAsC;AAGzB,QAAA,GAAG,GAAiB,gBAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { IAppiumIpc } from '@appium/types';
2
+ import type { AndroidUiautomator2Driver } from './driver';
3
+ export type SessionUdidIpcMessage = {
4
+ udid: string;
5
+ sessionId: string;
6
+ };
7
+ type IpcProvider = () => Promise<IAppiumIpc | undefined>;
8
+ export declare class SessionClaimHandler {
9
+ private readonly getIpc;
10
+ static readonly CLAIMED_TOPIC = "uiautomator2:sessionUdidClaimed";
11
+ static readonly CONTENDED_TOPIC = "uiautomator2:sessionUdidContended";
12
+ static readonly RELEASED_TOPIC = "uiautomator2:sessionUdidReleased";
13
+ private static readonly CONTENTION_PROBE_MS;
14
+ private static readonly RELEASE_WAIT_MS;
15
+ private readonly subscriptionsBySessionId;
16
+ constructor(getIpc: IpcProvider);
17
+ /** Subscribe the current session to udid claim messages from other sessions. */
18
+ registerActiveSession(driver: AndroidUiautomator2Driver): Promise<void>;
19
+ /** Unsubscribe the current session from udid claim messages. */
20
+ unregisterActiveSession(driver: AndroidUiautomator2Driver): void;
21
+ /** Publish this session's udid so any existing session on the same device can terminate. */
22
+ claimSessionUdid(driver: AndroidUiautomator2Driver): Promise<void>;
23
+ private dispatchSessionUdidMessage;
24
+ private handleSessionUdidMessage;
25
+ private publishSessionUdidContended;
26
+ private terminateSessionOnRequest;
27
+ private publishSessionUdidReleased;
28
+ private getPublisherId;
29
+ private isMatchingSessionUdidMessage;
30
+ }
31
+ export declare const sessionClaimHandler: SessionClaimHandler;
32
+ export {};
33
+ //# sourceMappingURL=session-claim-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-claim-handler.d.ts","sourceRoot":"","sources":["../../lib/session-claim-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,UAAU,EAA+B,MAAM,eAAe,CAAC;AAI1F,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,UAAU,CAAC;AAGxD,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;AAEzD,qBAAa,mBAAmB;IAalB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZnC,MAAM,CAAC,QAAQ,CAAC,aAAa,qCAAqC;IAClE,MAAM,CAAC,QAAQ,CAAC,eAAe,uCAAuC;IACtE,MAAM,CAAC,QAAQ,CAAC,cAAc,sCAAsC;IAEpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEhD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAGrC;gBAEyB,MAAM,EAAE,WAAW;IAEhD,gFAAgF;IAC1E,qBAAqB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7E,gEAAgE;IAChE,uBAAuB,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI;IAUhE,4FAA4F;IACtF,gBAAgB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyF1D,0BAA0B;YAc1B,wBAAwB;YA4BxB,2BAA2B;YAoB3B,yBAAyB;YAkBzB,0BAA0B;IAsBxC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,4BAA4B;CAOrC;AAWD,eAAO,MAAM,mBAAmB,qBAAyC,CAAC"}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sessionClaimHandler = exports.SessionClaimHandler = void 0;
4
+ exports.setSharedIpcForTesting = setSharedIpcForTesting;
5
+ exports.resetDriverInstanceIpcForTesting = resetDriverInstanceIpcForTesting;
6
+ const support_1 = require("appium/support");
7
+ const asyncbox_1 = require("asyncbox");
8
+ const promises_1 = require("node:timers/promises");
9
+ const utils_1 = require("./utils");
10
+ class SessionClaimHandler {
11
+ getIpc;
12
+ static CLAIMED_TOPIC = 'uiautomator2:sessionUdidClaimed';
13
+ static CONTENDED_TOPIC = 'uiautomator2:sessionUdidContended';
14
+ static RELEASED_TOPIC = 'uiautomator2:sessionUdidReleased';
15
+ static CONTENTION_PROBE_MS = 10;
16
+ static RELEASE_WAIT_MS = 15000;
17
+ subscriptionsBySessionId = new Map();
18
+ constructor(getIpc) {
19
+ this.getIpc = getIpc;
20
+ }
21
+ /** Subscribe the current session to udid claim messages from other sessions. */
22
+ async registerActiveSession(driver) {
23
+ const ipc = await this.getIpc();
24
+ const udid = driver.opts.udid;
25
+ const sessionId = driver.sessionId;
26
+ if (!ipc || !udid || !sessionId) {
27
+ return;
28
+ }
29
+ this.unregisterActiveSession(driver);
30
+ const subscription = ipc.subscribe(SessionClaimHandler.CLAIMED_TOPIC, this.getPublisherId(driver));
31
+ subscription.on('message', (message) => {
32
+ void this.dispatchSessionUdidMessage(driver, udid, sessionId, message);
33
+ });
34
+ this.subscriptionsBySessionId.set(sessionId, subscription);
35
+ }
36
+ /** Unsubscribe the current session from udid claim messages. */
37
+ unregisterActiveSession(driver) {
38
+ const sessionId = driver.sessionId;
39
+ if (!sessionId) {
40
+ return;
41
+ }
42
+ this.subscriptionsBySessionId.get(sessionId)?.unsubscribe();
43
+ this.subscriptionsBySessionId.delete(sessionId);
44
+ }
45
+ /** Publish this session's udid so any existing session on the same device can terminate. */
46
+ async claimSessionUdid(driver) {
47
+ const ipc = await this.getIpc();
48
+ if (!ipc) {
49
+ driver.log.debug('Driver-instance IPC is unavailable. Skipping publication of the session udid.');
50
+ return;
51
+ }
52
+ const udid = driver.opts.udid;
53
+ const sessionId = driver.sessionId;
54
+ if (!udid || !sessionId) {
55
+ driver.log.debug('The session udid is not known yet. Skipping udid publication.');
56
+ return;
57
+ }
58
+ const contendingSessionIds = new Set();
59
+ const releasedSessionIds = new Set();
60
+ const contendedSubscription = ipc.subscribe(SessionClaimHandler.CONTENDED_TOPIC, this.getPublisherId(driver));
61
+ const releasedSubscription = ipc.subscribe(SessionClaimHandler.RELEASED_TOPIC, this.getPublisherId(driver));
62
+ contendedSubscription.on('message', (message) => {
63
+ if (this.isMatchingSessionUdidMessage(message, udid, sessionId)) {
64
+ contendingSessionIds.add(message.data.sessionId);
65
+ }
66
+ });
67
+ releasedSubscription.on('message', (message) => {
68
+ if (this.isMatchingSessionUdidMessage(message, udid, sessionId)) {
69
+ releasedSessionIds.add(message.data.sessionId);
70
+ }
71
+ });
72
+ try {
73
+ await ipc.publish(SessionClaimHandler.CLAIMED_TOPIC, this.getPublisherId(driver), {
74
+ udid,
75
+ sessionId,
76
+ });
77
+ await (0, promises_1.setTimeout)(SessionClaimHandler.CONTENTION_PROBE_MS);
78
+ if (contendingSessionIds.size === 0) {
79
+ return;
80
+ }
81
+ try {
82
+ await (0, asyncbox_1.waitForCondition)(() => [...contendingSessionIds].every((id) => releasedSessionIds.has(id)), {
83
+ waitMs: SessionClaimHandler.RELEASE_WAIT_MS,
84
+ intervalMs: 50,
85
+ });
86
+ driver.log.debug(`Received release confirmation from ` +
87
+ `${support_1.util.pluralize('session', contendingSessionIds.size, true)} for udid '${udid}'`);
88
+ }
89
+ catch {
90
+ const pendingSessionIds = [...contendingSessionIds].filter((id) => !releasedSessionIds.has(id));
91
+ driver.log.warn(`Timed out after ${SessionClaimHandler.RELEASE_WAIT_MS}ms waiting for ` +
92
+ `${support_1.util.pluralize('session', pendingSessionIds.length, true)} ` +
93
+ `[${pendingSessionIds.join(', ')}] to release udid '${udid}'. ` +
94
+ `Proceeding with session startup.`);
95
+ }
96
+ }
97
+ finally {
98
+ contendedSubscription.unsubscribe();
99
+ releasedSubscription.unsubscribe();
100
+ }
101
+ }
102
+ /** @internal Exposed for unit tests. */
103
+ resetForTesting() {
104
+ for (const subscription of this.subscriptionsBySessionId.values()) {
105
+ subscription.unsubscribe();
106
+ }
107
+ this.subscriptionsBySessionId.clear();
108
+ }
109
+ async dispatchSessionUdidMessage(driver, udid, sessionId, message) {
110
+ try {
111
+ await this.handleSessionUdidMessage(driver, udid, message);
112
+ }
113
+ catch (err) {
114
+ const msg = err instanceof Error ? err.message : String(err);
115
+ driver.log.warn(`Could not handle udid claim IPC message for session '${sessionId}': ${msg}`);
116
+ }
117
+ }
118
+ async handleSessionUdidMessage(driver, udid, message) {
119
+ if (!this.isMatchingSessionUdidMessage(message, udid, driver.sessionId ?? undefined)) {
120
+ return;
121
+ }
122
+ try {
123
+ await this.publishSessionUdidContended(driver, udid);
124
+ }
125
+ catch (err) {
126
+ const msg = err instanceof Error ? err.message : String(err);
127
+ driver.log.warn(`Could not publish udid contention message for session '${driver.sessionId}': ${msg}`);
128
+ }
129
+ driver.log.warn(`Session '${message.data.sessionId}' is starting on udid '${udid}', which is already in use ` +
130
+ `by another session identified by ${driver.sessionId}. Running multiple parallel sessions on the same ` +
131
+ `device is highly discouraged. Consider enabling the Appium server's '--session-override' flag ` +
132
+ `and make sure to properly quit the previous session before starting a new one. ` +
133
+ `Terminating the obsolete session.`);
134
+ await this.terminateSessionOnRequest(driver, udid);
135
+ }
136
+ async publishSessionUdidContended(driver, udid) {
137
+ const ipc = await this.getIpc();
138
+ const sessionId = driver.sessionId ?? undefined;
139
+ if (!ipc || !udid || !sessionId) {
140
+ return;
141
+ }
142
+ await ipc.publish(SessionClaimHandler.CONTENDED_TOPIC, this.getPublisherId(driver), {
143
+ udid,
144
+ sessionId,
145
+ });
146
+ }
147
+ async terminateSessionOnRequest(driver, udid) {
148
+ const sessionId = driver.sessionId ?? undefined;
149
+ const publisherId = sessionId ? this.getPublisherId(driver) : undefined;
150
+ const { log } = driver;
151
+ try {
152
+ await driver.deleteSession();
153
+ }
154
+ catch (err) {
155
+ const msg = err instanceof Error ? err.message : String(err);
156
+ log.warn(`Could not terminate session '${sessionId}' on IPC request: ${msg}`);
157
+ }
158
+ await this.publishSessionUdidReleased(log, udid, sessionId, publisherId);
159
+ }
160
+ async publishSessionUdidReleased(log, udid, sessionId, publisherId) {
161
+ try {
162
+ const ipc = await this.getIpc();
163
+ if (!ipc || !udid || !sessionId || !publisherId) {
164
+ return;
165
+ }
166
+ await ipc.publish(SessionClaimHandler.RELEASED_TOPIC, publisherId, {
167
+ udid,
168
+ sessionId,
169
+ });
170
+ }
171
+ catch (err) {
172
+ const msg = err instanceof Error ? err.message : String(err);
173
+ log.warn(`Could not publish udid release message for session '${sessionId}': ${msg}`);
174
+ }
175
+ }
176
+ getPublisherId(driver) {
177
+ return support_1.node.getObjectId(driver);
178
+ }
179
+ isMatchingSessionUdidMessage(message, udid, sessionId) {
180
+ return message.data.udid === udid && message.data.sessionId !== sessionId;
181
+ }
182
+ }
183
+ exports.SessionClaimHandler = SessionClaimHandler;
184
+ const loadSharedIpc = (0, utils_1.memoize)(async function loadSharedIpc() {
185
+ try {
186
+ const { AppiumIpc } = (await import('appium/driver.js'));
187
+ return AppiumIpc ? new AppiumIpc() : undefined;
188
+ }
189
+ catch {
190
+ return undefined;
191
+ }
192
+ });
193
+ exports.sessionClaimHandler = new SessionClaimHandler(loadSharedIpc);
194
+ /**
195
+ * @internal Exposed for unit tests.
196
+ */
197
+ function setSharedIpcForTesting(ipc) {
198
+ loadSharedIpc.cache.set(undefined, Promise.resolve(ipc));
199
+ }
200
+ /**
201
+ * @internal Exposed for unit tests.
202
+ */
203
+ function resetDriverInstanceIpcForTesting() {
204
+ exports.sessionClaimHandler.resetForTesting();
205
+ loadSharedIpc.cache.clear();
206
+ }
207
+ //# sourceMappingURL=session-claim-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-claim-handler.js","sourceRoot":"","sources":["../../lib/session-claim-handler.ts"],"names":[],"mappings":"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"}
package/lib/driver.ts CHANGED
@@ -121,6 +121,7 @@ import {
121
121
  mobileViewPortRect,
122
122
  } from './commands/viewport';
123
123
  import {executeMethodMap} from './execute-method-map';
124
+ import {sessionClaimHandler} from './session-claim-handler';
124
125
 
125
126
  // NO_PROXY contains the paths that we never want to proxy to UiAutomator2 server.
126
127
  // TODO: Add the list of paths that we never want to proxy to UiAutomator2 server.
@@ -426,6 +427,10 @@ class AndroidUiautomator2Driver
426
427
  this.opts.udid = udid;
427
428
  // @ts-expect-error do not put random stuff on opts
428
429
  this.opts.emPort = emPort;
430
+
431
+ await sessionClaimHandler.registerActiveSession(this);
432
+ await sessionClaimHandler.claimSessionUdid(this);
433
+
429
434
  // now that we know our java version and device info, we can create our
430
435
  // ADB instance
431
436
  this.adb = await this.createADB();
@@ -499,7 +504,13 @@ class AndroidUiautomator2Driver
499
504
  return {...sessionData, ...uia2Data};
500
505
  }
501
506
 
507
+ async onIpcInit(): Promise<void> {
508
+ await sessionClaimHandler.registerActiveSession(this);
509
+ }
510
+
502
511
  override async deleteSession() {
512
+ sessionClaimHandler.unregisterActiveSession(this);
513
+
503
514
  this.log.debug('Deleting UiAutomator2 session');
504
515
 
505
516
  const screenRecordingStopTasks = [
package/lib/logger.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import {logger} from 'appium/support';
2
+ import type {AppiumLogger} from '@appium/types';
2
3
 
3
- export const log = logger.getLogger('UiAutomator2');
4
+ export const log: AppiumLogger = logger.getLogger('UiAutomator2');