diff --git a/packages/playwright-core/src/server/bidi/bidiInput.ts b/packages/playwright-core/src/server/bidi/bidiInput.ts index e14e90529c..3550051a6a 100644 --- a/packages/playwright-core/src/server/bidi/bidiInput.ts +++ b/packages/playwright-core/src/server/bidi/bidiInput.ts @@ -76,7 +76,7 @@ export class RawMouseImpl implements input.RawMouse { } async move(x: number, y: number, button: types.MouseButton | 'none', buttons: Set, modifiers: Set, forClick: boolean): Promise { - // TODO: bidi throws when x/y are not integers. + // Bidi throws when x/y are not integers. x = Math.round(x); y = Math.round(y); await this._performActions([{ type: 'pointerMove', x, y }]); @@ -91,6 +91,19 @@ export class RawMouseImpl implements input.RawMouse { } async wheel(x: number, y: number, buttons: Set, modifiers: Set, deltaX: number, deltaY: number): Promise { + // Bidi throws when x/y are not integers. + x = Math.round(x); + y = Math.round(y); + await this._session.send('input.performActions', { + context: this._session.sessionId, + actions: [ + { + type: 'wheel', + id: 'pw_mouse_wheel', + actions: [{ type: 'scroll', x, y, deltaX, deltaY }], + } + ] + }); } private async _performActions(actions: bidi.Input.PointerSourceAction[]) {