木偶-Handlin page.waitForSelector()失败

use*_*421 3 node.js async-await puppeteer

如果page.waitForSelector()失败,则抛出错误。由于这是在async函数内部运行的,因此if直接进入代码的catch部分。

如果page.waitForSelector()失败,是否有可能在下面的一行执行代码?

像这样(伪代码):

if ( (await page.waitForSelector('.test') == null) { //do X}
Run Code Online (Sandbox Code Playgroud)

从API:

如果选择器在等待的毫秒数后没有出现,则该函数将抛出。

我如何在同一代码块中管理该抛出,好像功能会成功执行?

Ram*_*ala 5

您为什么不赶上page.waitForSelector抛出的错误,然后执行类似以下操作:

(async() => {

     try {
        page.waitForSelector(selector);
     } catch(error) {
       // do as you wish with this error and then do your next actions

           try {
                page.goto('someUrl');
           } catch(error) {
               throw new Error(error);
           }
     }

})
Run Code Online (Sandbox Code Playgroud)