const { app, BrowserWindow } = require('electron'); const path = require('node:path'); async function createWindow () { const mainWindow = new BrowserWindow({ width: 800, height: 600, x: 100, y: 100, webPreferences: { preload: path.join(__dirname, 'preload.js'), contextIsolation: false, nodeIntegration: true } }); await mainWindow.loadFile('index.html'); const rect = await mainWindow.webContents.executeJavaScript('JSON.parse(JSON.stringify(document.querySelector("a").getBoundingClientRect()))'); const x = rect.x + rect.width / 2; const y = rect.y + rect.height / 2; function click (x, y, options) { x = Math.floor(x); y = Math.floor(y); mainWindow.webContents.sendInputEvent({ type: 'mouseDown', button: 'left', x, y, clickCount: 1, ...options }); mainWindow.webContents.sendInputEvent({ type: 'mouseUp', button: 'left', x, y, clickCount: 1, ...options }); } click(x, y, { modifiers: ['shift'] }); } app.whenReady().then(() => { app.on('web-contents-created', (e, wc) => { wc.on('render-process-gone', (e, details) => { console.error(details); process.exit(1); }); wc.on('did-finish-load', () => { const title = wc.getTitle(); if (title === 'Window From Link') { process.exit(0); } }); }); createWindow(); });