diff --git a/packages/playwright-crawler/src/internals/enqueue-links/click-elements.ts b/packages/playwright-crawler/src/internals/enqueue-links/click-elements.ts index bd5acf278a27..5fe6a30bd16a 100644 --- a/packages/playwright-crawler/src/internals/enqueue-links/click-elements.ts +++ b/packages/playwright-crawler/src/internals/enqueue-links/click-elements.ts @@ -405,7 +405,12 @@ function createTargetCreatedHandler(requests: Set): (popup: Page) => Pro * @ignore */ function isTopFrameNavigationRequest(page: Page, req: Request): boolean { - return req.isNavigationRequest() && req.frame() === page.mainFrame(); + try { + return req.isNavigationRequest() && req.frame() === page.mainFrame(); + } catch (error) { + log.error('Error in isTopFrameNavigationRequest', { error }); + return false; + } } /** @@ -567,11 +572,12 @@ async function waitForPageIdle({ */ async function restoreHistoryNavigationAndSaveCapturedUrls(page: Page, requests: Set): Promise { /* istanbul ignore next */ - const state = await page.evaluate(() => { - const { stateHistory } = window.history as unknown as ApifyWindow; - (window as unknown as Dictionary).history = (window as unknown as Dictionary).__originalHistory__; - return stateHistory; - }); + const state = + (await page.evaluate(() => { + const { stateHistory } = window.history as unknown as ApifyWindow; + (window as unknown as Dictionary).history = (window as unknown as Dictionary).__originalHistory__; + return stateHistory; + })) ?? []; state.forEach((args) => { try { diff --git a/packages/puppeteer-crawler/src/internals/enqueue-links/click-elements.ts b/packages/puppeteer-crawler/src/internals/enqueue-links/click-elements.ts index 2efefafde2e4..baef57869f95 100644 --- a/packages/puppeteer-crawler/src/internals/enqueue-links/click-elements.ts +++ b/packages/puppeteer-crawler/src/internals/enqueue-links/click-elements.ts @@ -387,7 +387,12 @@ function createInterceptRequestHandler(page: Page, requests: Set): (req: * @ignore */ function isTopFrameNavigationRequest(page: Page, req: PuppeteerRequest): boolean { - return req.isNavigationRequest() && req.frame() === page.mainFrame(); + try { + return req.isNavigationRequest() && req.frame() === page.mainFrame(); + } catch (error) { + log.error('Error in isTopFrameNavigationRequest', { error }); + return false; + } } /** @@ -583,11 +588,12 @@ async function waitForPageIdle({ */ async function restoreHistoryNavigationAndSaveCapturedUrls(page: Page, requests: Set): Promise { /* istanbul ignore next */ - const state = await page.evaluate(() => { - const { stateHistory } = window.history as unknown as ApifyWindow; - (window as unknown as Dictionary).history = (window as unknown as Dictionary).__originalHistory__; - return stateHistory; - }); + const state = + (await page.evaluate(() => { + const { stateHistory } = window.history as unknown as ApifyWindow; + (window as unknown as Dictionary).history = (window as unknown as Dictionary).__originalHistory__; + return stateHistory; + })) ?? []; state.forEach((args) => { try { const stateUrl = args[args.length - 1] as string;