From 774bc46afb54a0b68af22f459a3577979c19f9ce Mon Sep 17 00:00:00 2001 From: "Tommy D. Rossi" Date: Tue, 30 Dec 2025 13:10:10 +0100 Subject: [PATCH] wait for main frame on attach --- playwriter/src/cdp-relay.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/playwriter/src/cdp-relay.ts b/playwriter/src/cdp-relay.ts index 5989d1e..8cff367 100644 --- a/playwriter/src/cdp-relay.ts +++ b/playwriter/src/cdp-relay.ts @@ -271,14 +271,17 @@ export async function startPlayWriterCDPRelayServer({ port = 19988, host = '127. const contextCreatedPromise = new Promise((resolve) => { const handler = ({ event }: { event: CDPEventBase }) => { if (event.method === 'Runtime.executionContextCreated' && event.sessionId === sessionId) { - clearTimeout(timeout) - emitter.off('cdp:event', handler) - resolve() + const params = event.params as Protocol.Runtime.ExecutionContextCreatedEvent | undefined + if (params?.context?.auxData?.isDefault === true) { + clearTimeout(timeout) + emitter.off('cdp:event', handler) + resolve() + } } } const timeout = setTimeout(() => { emitter.off('cdp:event', handler) - logger?.log(chalk.yellow(`IMPORTANT: Runtime.enable timed out waiting for executionContextCreated (sessionId: ${sessionId}). This may cause pages to not be visible immediately.`)) + logger?.log(chalk.yellow(`IMPORTANT: Runtime.enable timed out waiting for main frame executionContextCreated (sessionId: ${sessionId}). This may cause pages to not be visible immediately.`)) resolve() }, 3000) emitter.on('cdp:event', handler)