3 回答

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
您應(yīng)該能夠執(zhí)行以下操作:
await page.waitForFunction((finalUrl) => {
return document.location === finalUrl
}, {}, finalUrl).catch(retry)
但它可能更簡(jiǎn)單:
await page.waitForResponse(finalUrl).catch(retry)

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
也許是這樣的:
if (page.url() !== finalURL) { // await is not needed here
let t = 0;
busy: while(t < 400) { // was '> 400' a typo?
const [_, navigation] = await Promise.allSettled([
page.click('#tryAgainLink'),
page.waitForNavigation(),
]);
if (navigation.status === 'fulfilled') break busy;
t++;
await page.waitForTimeout(1500);
}
}

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
我使用這種方法:
async function isNavigation() {
try {
await page.evaluate(() => console.log('any code'))
return false
} catch (ex) {
// check error, should be:
// "Execution context was destroyed, most likely because of a navigation"
return true
}
}
添加回答
舉報(bào)