Javascript 捕捉waitForSelector错误
我使用一个名为的模块 我尝试在页面上等待可能不出现的选择器。在我采取的两种方法中,只有try-catch方法有效 尝试抓块-工作Javascript 捕捉waitForSelector错误,javascript,node.js,automation,ui-automation,puppeteer,Javascript,Node.js,Automation,Ui Automation,Puppeteer,我使用一个名为的模块 我尝试在页面上等待可能不出现的选择器。在我采取的两种方法中,只有try-catch方法有效 尝试抓块-工作 try { await page.waitForSelector('.element'); //element appeared } catch (error) { //element did not appear } await page.waitForSelector('.element') .catch((error) =>
try {
await page.waitForSelector('.element');
//element appeared
} catch (error) {
//element did not appear
}
await page.waitForSelector('.element')
.catch((error) => {
//element did not appear
})
.then(() => {
//element appeared
});
承诺链接-不起作用
try {
await page.waitForSelector('.element');
//element appeared
} catch (error) {
//element did not appear
}
await page.waitForSelector('.element')
.catch((error) => {
//element did not appear
})
.then(() => {
//element appeared
});
似乎waitForSelector
确实返回了API中指出的承诺,但我不明白后一种方法为什么不起作用。它还是抛出了错误
有人遇到过同样的问题吗?您应该重新构造承诺链接示例,以便在使用方法之前使用该方法 考虑以下示例,使用: 如果该元素不存在,则
失败
将记录到控制台。否则,如果元素确实存在,则输出将为SUCCESS
另一方面,请看下面的示例,其中和是颠倒的:
// Incorrect Method
await page.waitForSelector('#example').catch(e => {
console.log('FAIL');
}).then(() => {
console.log('SUCCESS - not necessarily');
});
如果元素不存在,则FAIL
将记录到控制台,但无论元素是否存在,SUCCESS
也将写入控制台。这是因为记录SUCCESS
是在尝试捕获错误后的下一步
使用before将允许您打印两条消息中的一条,并获得所需的结果