chore: rename android selector in protocol (#36079)

This commit is contained in:
Max Schmitt 2025-05-27 15:58:27 -07:00 committed by GitHub
parent 1445b2cce6
commit f18371862a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 62 additions and 55 deletions

View File

@ -161,11 +161,11 @@ export class AndroidDevice extends ChannelOwner<channels.AndroidDeviceChannel> i
}
async wait(selector: api.AndroidSelector, options: { state?: 'gone' } & types.TimeoutOptions = {}) {
await this._channel.wait({ selector: toSelectorChannel(selector), ...options, timeout: this._timeoutSettings.timeout(options) });
await this._channel.wait({ androidSelector: toSelectorChannel(selector), ...options, timeout: this._timeoutSettings.timeout(options) });
}
async fill(selector: api.AndroidSelector, text: string, options: types.TimeoutOptions = {}) {
await this._channel.fill({ selector: toSelectorChannel(selector), text, ...options, timeout: this._timeoutSettings.timeout(options) });
await this._channel.fill({ androidSelector: toSelectorChannel(selector), text, ...options, timeout: this._timeoutSettings.timeout(options) });
}
async press(selector: api.AndroidSelector, key: api.AndroidKey, options: types.TimeoutOptions = {}) {
@ -174,39 +174,39 @@ export class AndroidDevice extends ChannelOwner<channels.AndroidDeviceChannel> i
}
async tap(selector: api.AndroidSelector, options: { duration?: number } & types.TimeoutOptions = {}) {
await this._channel.tap({ selector: toSelectorChannel(selector), ...options, timeout: this._timeoutSettings.timeout(options) });
await this._channel.tap({ androidSelector: toSelectorChannel(selector), ...options, timeout: this._timeoutSettings.timeout(options) });
}
async drag(selector: api.AndroidSelector, dest: types.Point, options: SpeedOptions & types.TimeoutOptions = {}) {
await this._channel.drag({ selector: toSelectorChannel(selector), dest, ...options, timeout: this._timeoutSettings.timeout(options) });
await this._channel.drag({ androidSelector: toSelectorChannel(selector), dest, ...options, timeout: this._timeoutSettings.timeout(options) });
}
async fling(selector: api.AndroidSelector, direction: Direction, options: SpeedOptions & types.TimeoutOptions = {}) {
await this._channel.fling({ selector: toSelectorChannel(selector), direction, ...options, timeout: this._timeoutSettings.timeout(options) });
await this._channel.fling({ androidSelector: toSelectorChannel(selector), direction, ...options, timeout: this._timeoutSettings.timeout(options) });
}
async longTap(selector: api.AndroidSelector, options: types.TimeoutOptions = {}) {
await this._channel.longTap({ selector: toSelectorChannel(selector), ...options, timeout: this._timeoutSettings.timeout(options) });
await this._channel.longTap({ androidSelector: toSelectorChannel(selector), ...options, timeout: this._timeoutSettings.timeout(options) });
}
async pinchClose(selector: api.AndroidSelector, percent: number, options: SpeedOptions & types.TimeoutOptions = {}) {
await this._channel.pinchClose({ selector: toSelectorChannel(selector), percent, ...options, timeout: this._timeoutSettings.timeout(options) });
await this._channel.pinchClose({ androidSelector: toSelectorChannel(selector), percent, ...options, timeout: this._timeoutSettings.timeout(options) });
}
async pinchOpen(selector: api.AndroidSelector, percent: number, options: SpeedOptions & types.TimeoutOptions = {}) {
await this._channel.pinchOpen({ selector: toSelectorChannel(selector), percent, ...options, timeout: this._timeoutSettings.timeout(options) });
await this._channel.pinchOpen({ androidSelector: toSelectorChannel(selector), percent, ...options, timeout: this._timeoutSettings.timeout(options) });
}
async scroll(selector: api.AndroidSelector, direction: Direction, percent: number, options: SpeedOptions & types.TimeoutOptions = {}) {
await this._channel.scroll({ selector: toSelectorChannel(selector), direction, percent, ...options, timeout: this._timeoutSettings.timeout(options) });
await this._channel.scroll({ androidSelector: toSelectorChannel(selector), direction, percent, ...options, timeout: this._timeoutSettings.timeout(options) });
}
async swipe(selector: api.AndroidSelector, direction: Direction, percent: number, options: SpeedOptions & types.TimeoutOptions = {}) {
await this._channel.swipe({ selector: toSelectorChannel(selector), direction, percent, ...options, timeout: this._timeoutSettings.timeout(options) });
await this._channel.swipe({ androidSelector: toSelectorChannel(selector), direction, percent, ...options, timeout: this._timeoutSettings.timeout(options) });
}
async info(selector: api.AndroidSelector): Promise<api.AndroidElementInfo> {
return (await this._channel.info({ selector: toSelectorChannel(selector) })).info;
return (await this._channel.info({ androidSelector: toSelectorChannel(selector) })).info;
}
async screenshot(options: { path?: string } = {}): Promise<Buffer> {
@ -377,8 +377,8 @@ function toSelectorChannel(selector: api.AndroidSelector): channels.AndroidSelec
enabled,
focusable,
focused,
hasChild: hasChild ? { selector: toSelectorChannel(hasChild.selector) } : undefined,
hasDescendant: hasDescendant ? { selector: toSelectorChannel(hasDescendant.selector), maxDepth: hasDescendant.maxDepth } : undefined,
hasChild: hasChild ? { androidSelector: toSelectorChannel(hasChild.selector) } : undefined,
hasDescendant: hasDescendant ? { androidSelector: toSelectorChannel(hasDescendant.selector), maxDepth: hasDescendant.maxDepth } : undefined,
longClickable,
scrollable,
selected,

View File

@ -2605,58 +2605,58 @@ scheme.AndroidDeviceWebViewRemovedEvent = tObject({
socketName: tString,
});
scheme.AndroidDeviceWaitParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
state: tOptional(tEnum(['gone'])),
timeout: tNumber,
});
scheme.AndroidDeviceWaitResult = tOptional(tObject({}));
scheme.AndroidDeviceFillParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
text: tString,
timeout: tNumber,
});
scheme.AndroidDeviceFillResult = tOptional(tObject({}));
scheme.AndroidDeviceTapParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
duration: tOptional(tNumber),
timeout: tNumber,
});
scheme.AndroidDeviceTapResult = tOptional(tObject({}));
scheme.AndroidDeviceDragParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
dest: tType('Point'),
speed: tOptional(tNumber),
timeout: tNumber,
});
scheme.AndroidDeviceDragResult = tOptional(tObject({}));
scheme.AndroidDeviceFlingParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
direction: tEnum(['up', 'down', 'left', 'right']),
speed: tOptional(tNumber),
timeout: tNumber,
});
scheme.AndroidDeviceFlingResult = tOptional(tObject({}));
scheme.AndroidDeviceLongTapParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
timeout: tNumber,
});
scheme.AndroidDeviceLongTapResult = tOptional(tObject({}));
scheme.AndroidDevicePinchCloseParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
percent: tNumber,
speed: tOptional(tNumber),
timeout: tNumber,
});
scheme.AndroidDevicePinchCloseResult = tOptional(tObject({}));
scheme.AndroidDevicePinchOpenParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
percent: tNumber,
speed: tOptional(tNumber),
timeout: tNumber,
});
scheme.AndroidDevicePinchOpenResult = tOptional(tObject({}));
scheme.AndroidDeviceScrollParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
direction: tEnum(['up', 'down', 'left', 'right']),
percent: tNumber,
speed: tOptional(tNumber),
@ -2664,7 +2664,7 @@ scheme.AndroidDeviceScrollParams = tObject({
});
scheme.AndroidDeviceScrollResult = tOptional(tObject({}));
scheme.AndroidDeviceSwipeParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
direction: tEnum(['up', 'down', 'left', 'right']),
percent: tNumber,
speed: tOptional(tNumber),
@ -2672,7 +2672,7 @@ scheme.AndroidDeviceSwipeParams = tObject({
});
scheme.AndroidDeviceSwipeResult = tOptional(tObject({}));
scheme.AndroidDeviceInfoParams = tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
});
scheme.AndroidDeviceInfoResult = tObject({
info: tType('AndroidElementInfo'),
@ -2820,10 +2820,10 @@ scheme.AndroidSelector = tObject({
focusable: tOptional(tBoolean),
focused: tOptional(tBoolean),
hasChild: tOptional(tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
})),
hasDescendant: tOptional(tObject({
selector: tType('AndroidSelector'),
androidSelector: tType('AndroidSelector'),
maxDepth: tOptional(tNumber),
})),
longClickable: tOptional(tBoolean),

View File

@ -224,8 +224,15 @@ export class AndroidDevice extends SdkObject {
}
async send(method: string, params: any = {}): Promise<any> {
// Patch the timeout in, just in case it's missing in one of the commands.
params.timeout = params.timeout || 0;
params = {
...params,
// Patch the timeout in, just in case it's missing in one of the commands.
timeout: params.timeout || 0,
};
if (params.androidSelector) {
params.selector = params.androidSelector;
delete params.androidSelector;
}
const driver = await this._driver();
if (!driver)
throw new Error('Device is closed');

View File

@ -63,7 +63,7 @@ export class AndroidDeviceDispatcher extends Dispatcher<AndroidDevice, channels.
}
async fill(params: channels.AndroidDeviceFillParams) {
await this._object.send('click', { selector: params.selector });
await this._object.send('click', { selector: params.androidSelector });
await this._object.send('fill', params);
}

View File

@ -4610,7 +4610,7 @@ export type AndroidDeviceWebViewRemovedEvent = {
socketName: string,
};
export type AndroidDeviceWaitParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
state?: 'gone',
timeout: number,
};
@ -4619,7 +4619,7 @@ export type AndroidDeviceWaitOptions = {
};
export type AndroidDeviceWaitResult = void;
export type AndroidDeviceFillParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
text: string,
timeout: number,
};
@ -4628,7 +4628,7 @@ export type AndroidDeviceFillOptions = {
};
export type AndroidDeviceFillResult = void;
export type AndroidDeviceTapParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
duration?: number,
timeout: number,
};
@ -4637,7 +4637,7 @@ export type AndroidDeviceTapOptions = {
};
export type AndroidDeviceTapResult = void;
export type AndroidDeviceDragParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
dest: Point,
speed?: number,
timeout: number,
@ -4647,7 +4647,7 @@ export type AndroidDeviceDragOptions = {
};
export type AndroidDeviceDragResult = void;
export type AndroidDeviceFlingParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
direction: 'up' | 'down' | 'left' | 'right',
speed?: number,
timeout: number,
@ -4657,7 +4657,7 @@ export type AndroidDeviceFlingOptions = {
};
export type AndroidDeviceFlingResult = void;
export type AndroidDeviceLongTapParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
timeout: number,
};
export type AndroidDeviceLongTapOptions = {
@ -4665,7 +4665,7 @@ export type AndroidDeviceLongTapOptions = {
};
export type AndroidDeviceLongTapResult = void;
export type AndroidDevicePinchCloseParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
percent: number,
speed?: number,
timeout: number,
@ -4675,7 +4675,7 @@ export type AndroidDevicePinchCloseOptions = {
};
export type AndroidDevicePinchCloseResult = void;
export type AndroidDevicePinchOpenParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
percent: number,
speed?: number,
timeout: number,
@ -4685,7 +4685,7 @@ export type AndroidDevicePinchOpenOptions = {
};
export type AndroidDevicePinchOpenResult = void;
export type AndroidDeviceScrollParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
direction: 'up' | 'down' | 'left' | 'right',
percent: number,
speed?: number,
@ -4696,7 +4696,7 @@ export type AndroidDeviceScrollOptions = {
};
export type AndroidDeviceScrollResult = void;
export type AndroidDeviceSwipeParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
direction: 'up' | 'down' | 'left' | 'right',
percent: number,
speed?: number,
@ -4707,7 +4707,7 @@ export type AndroidDeviceSwipeOptions = {
};
export type AndroidDeviceSwipeResult = void;
export type AndroidDeviceInfoParams = {
selector: AndroidSelector,
androidSelector: AndroidSelector,
};
export type AndroidDeviceInfoOptions = {
@ -4964,10 +4964,10 @@ export type AndroidSelector = {
focusable?: boolean,
focused?: boolean,
hasChild?: {
selector: AndroidSelector,
androidSelector: AndroidSelector,
},
hasDescendant?: {
selector: AndroidSelector,
androidSelector: AndroidSelector,
maxDepth?: number,
},
longClickable?: boolean,

View File

@ -3847,7 +3847,7 @@ AndroidDevice:
wait:
hidden: Wait
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
state:
type: enum?
literals:
@ -3857,21 +3857,21 @@ AndroidDevice:
fill:
title: Fill "{text}"
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
text: string
timeout: number
tap:
title: Tap
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
duration: number?
timeout: number
drag:
title: Drag
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
dest: Point
speed: number?
timeout: number
@ -3879,7 +3879,7 @@ AndroidDevice:
fling:
title: Fling
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
direction:
type: enum
literals:
@ -3893,13 +3893,13 @@ AndroidDevice:
longTap:
title: Long tap
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
timeout: number
pinchClose:
title: Pinch close
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
percent: number
speed: number?
timeout: number
@ -3907,7 +3907,7 @@ AndroidDevice:
pinchOpen:
title: Pinch open
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
percent: number
speed: number?
timeout: number
@ -3915,7 +3915,7 @@ AndroidDevice:
scroll:
title: Scroll
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
direction:
type: enum
literals:
@ -3930,7 +3930,7 @@ AndroidDevice:
swipe:
title: Swipe
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
direction:
type: enum
literals:
@ -3945,7 +3945,7 @@ AndroidDevice:
info:
internal: true
parameters:
selector: AndroidSelector
androidSelector: AndroidSelector
returns:
info: AndroidElementInfo
@ -4077,11 +4077,11 @@ AndroidSelector:
hasChild:
type: object?
properties:
selector: AndroidSelector
androidSelector: AndroidSelector
hasDescendant:
type: object?
properties:
selector: AndroidSelector
androidSelector: AndroidSelector
maxDepth: number?
longClickable: boolean?
pkg: string?