2025-04-16 21:56:52 +02:00
|
|
|
import { Page } from 'playwright-test-coverage';
|
2024-07-02 16:20:31 +02:00
|
|
|
|
|
|
|
|
interface WindowWithMousePosition extends Window {
|
|
|
|
|
mouseX: number;
|
|
|
|
|
mouseY: number;
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-03 20:08:46 +02:00
|
|
|
export const initializeMousePositionTracker = async (page: Page) => {
|
|
|
|
|
const window = (await page.evaluateHandle('window')) as any;
|
2024-07-02 16:20:31 +02:00
|
|
|
await page.evaluate((window: WindowWithMousePosition) => {
|
|
|
|
|
window.mouseX = 0;
|
|
|
|
|
window.mouseY = 0;
|
2025-07-03 20:08:46 +02:00
|
|
|
window.addEventListener('mousemove', event => {
|
2024-07-02 16:20:31 +02:00
|
|
|
window.mouseX = event.clientX;
|
|
|
|
|
window.mouseY = event.clientY;
|
|
|
|
|
});
|
|
|
|
|
}, window);
|
2025-07-03 20:08:46 +02:00
|
|
|
};
|
2024-07-02 16:20:31 +02:00
|
|
|
|
|
|
|
|
export const getMousePosition = async (page: Page) => {
|
2025-07-03 20:08:46 +02:00
|
|
|
const window = (await page.evaluateHandle('window')) as any;
|
2024-07-02 16:20:31 +02:00
|
|
|
return await page.evaluate((window: WindowWithMousePosition) => {
|
|
|
|
|
return { x: window.mouseX, y: window.mouseY };
|
|
|
|
|
}, window);
|
2025-07-03 20:08:46 +02:00
|
|
|
};
|