From 1c1fc2a5924018cb697058086a5a64cb8b6e9604 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Wed, 8 Jan 2025 10:06:32 -0800 Subject: [PATCH] use document.scrollingElement instead --- .../playwright-core/src/server/injected/injectedScript.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/playwright-core/src/server/injected/injectedScript.ts b/packages/playwright-core/src/server/injected/injectedScript.ts index b2c831b263..ed963f2b3f 100644 --- a/packages/playwright-core/src/server/injected/injectedScript.ts +++ b/packages/playwright-core/src/server/injected/injectedScript.ts @@ -1024,10 +1024,10 @@ export class InjectedScript { // createTouch does not accept clientX/clientY, so we have to use pageX/pageY. let pageX = t.pageX; if (pageX === undefined && t.clientX !== undefined) - pageX = t.clientX + this.window.scrollX; + pageX = t.clientX + (this.document.scrollingElement?.scrollLeft || 0); let pageY = t.pageY; if (pageY === undefined && t.clientY !== undefined) - pageY = t.clientY + this.window.scrollY; + pageY = t.clientY + (this.document.scrollingElement?.scrollTop || 0); return (this.document as any).createTouch(this.window, t.target ?? node, t.identifier, pageX, pageY, t.screenX, t.screenY, t.radiusX, t.radiusY, t.rotationAngle, t.force); }; const createTouchList = (touches: any) => {