(debugPort)
| 394 | } |
| 395 | |
| 396 | async function connectToPage(debugPort) { |
| 397 | const deadline = Date.now() + 10000 |
| 398 | let lastError = null |
| 399 | while (Date.now() < deadline) { |
| 400 | try { |
| 401 | const targets = await httpGetJson(`http://127.0.0.1:${debugPort}/json/list`) |
| 402 | const page = targets.find((target) => target.type === 'page' && target.webSocketDebuggerUrl) |
| 403 | if (page) { |
| 404 | const client = new CdpClient(page.webSocketDebuggerUrl) |
| 405 | await client.connect() |
| 406 | return client |
| 407 | } |
| 408 | } catch (err) { |
| 409 | lastError = err |
| 410 | } |
| 411 | await sleep(100) |
| 412 | } |
| 413 | throw new Error(`Timed out waiting for Chrome CDP page: ${lastError?.message ?? 'unknown error'}`) |
| 414 | } |
| 415 | |
| 416 | async function evaluate(client, expression) { |
| 417 | const result = await client.send('Runtime.evaluate', { |
no test coverage detected