Skip to content

Commit 77a3991

Browse files
committed
Enhance executeStep function to improve error handling during page navigation. Added support for protocol-relative URLs and implemented screenshot capture on navigation failure, logging the error message for better debugging.
1 parent 7a1553d commit 77a3991

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/step-executor.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,12 +344,21 @@ export async function executeStep(
344344

345345
if (href) {
346346
// absolute or relative URL
347-
if (!href.startsWith('http')) {
347+
if (href.startsWith('//')) {
348+
href = 'https:' + href;
349+
} else if (!href.startsWith('http')) {
348350
const base = page.url();
349351
href = new URL(href, base).toString();
350352
}
351353
newPage = await context.newPage();
352-
await newPage.goto(href, { waitUntil: 'networkidle' });
354+
try {
355+
await newPage.goto(href, { waitUntil: 'networkidle' });
356+
} catch (err: any) {
357+
// take page screenshot
358+
await newPage?.screenshot({ path: `screenshot-${href}.png` });
359+
console.log(` ⚠️ Navigation failed for ${href}: ${err.message}`);
360+
throw err;
361+
}
353362
} else {
354363
// fallback: click with modifier to open new tab
355364
const pagePromise = context.waitForEvent('page');

0 commit comments

Comments
 (0)