From 66d68482ceb5a5b6a9cd0a6103ffe100880aa26b Mon Sep 17 00:00:00 2001 From: Stephen Rayner Date: Wed, 26 Feb 2025 22:46:40 +0000 Subject: [PATCH] fix: prevent navigation errors by filtering out non-http protocols in new tab detection --- lib/handlers/actHandler.ts | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/lib/handlers/actHandler.ts b/lib/handlers/actHandler.ts index 48a652c0..49c5538e 100644 --- a/lib/handlers/actHandler.ts +++ b/lib/handlers/actHandler.ts @@ -525,21 +525,24 @@ export class StagehandActHandler { }); if (newOpenedTab) { - this.logger({ - category: "action", - message: "new page detected (new tab) with URL", - level: 1, - auxiliary: { - url: { - value: newOpenedTab.url(), - type: "string", + const newOpenedTabUrl = newOpenedTab.url(); + if (newOpenedTabUrl.startsWith("http")) { + this.logger({ + category: "action", + message: "new page detected (new tab) with URL", + level: 1, + auxiliary: { + url: { + value: newOpenedTabUrl, + type: "string", + }, }, - }, - }); - await newOpenedTab.close(); - await this.stagehandPage.page.goto(newOpenedTab.url()); - await this.stagehandPage.page.waitForLoadState("domcontentloaded"); - await this.stagehandPage._waitForSettledDom(domSettleTimeoutMs); + }); + await newOpenedTab.close(); + await this.stagehandPage.page.goto(newOpenedTabUrl); + await this.stagehandPage.page.waitForLoadState("domcontentloaded"); + await this.stagehandPage._waitForSettledDom(domSettleTimeoutMs); + } } await Promise.race([