Skip to content

Commit 66dfcb9

Browse files
committed
Wait for browser layout page readiness
1 parent 5f66001 commit 66dfcb9

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

scripts/check_browser_layout.mjs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,25 @@ try {
8686
await client.send('Page.enable');
8787
await client.send('Page.navigate', { url });
8888

89-
for (let i = 0; i < 100; i++) {
89+
let pageReady = false;
90+
for (let i = 0; i < 300; i++) {
9091
const ready = await client.send('Runtime.evaluate', {
91-
expression: "document.readyState === 'complete' && !!document.querySelector('.lesson-step code')",
92+
expression: `location.href === ${JSON.stringify(url)} && document.readyState === 'complete' && !!document.querySelector('.lesson-step code')`,
9293
returnByValue: true,
9394
});
94-
if (ready.result.value) break;
95+
if (ready.result.value) {
96+
pageReady = true;
97+
break;
98+
}
9599
await sleep(100);
96100
}
101+
if (!pageReady) {
102+
const debug = await client.send('Runtime.evaluate', {
103+
expression: `({ href: location.href, readyState: document.readyState, title: document.title, text: document.body?.innerText?.slice(0, 500) })`,
104+
returnByValue: true,
105+
});
106+
throw new Error(`Browser layout page did not become ready: ${JSON.stringify(debug.result.value)}`);
107+
}
97108

98109
const result = await client.send('Runtime.evaluate', {
99110
returnByValue: true,

0 commit comments

Comments
 (0)