0

我在 Puppeteer 脚本中有以下错误处理程序。从node我的计算机上运行时,它运行良好。但是,当从 Apify Puppeteer-Scraper Actor 运行时,它只有在我取消注释时才有效console.log(e)。如果不是,则无论是否存在类元素,它都将始终设置notfound为。truefoobar

let notfound = false;
try {
    await page.waitForSelector('.foobar', { timeout: 10 });
} catch(e) {
    // console.log(e);
    console.log('Foobar not found.');
    notfound = true;
}

在其他语言中,我会怀疑内存处理不好,但我不确定这里是否会出现这种情况?什么可以解释这种行为?

4

1 回答 1

0

它不在原始问题中(我的错),但waitForSelector()有一个自定义超时:

    await page.waitForSelector('.foobar', { timeout: 10});

现在这个超时设置为毫秒,而不是秒。

显然 10 毫秒不足以让foobarPuppeteer 渲染类对象。增加这个值解决了这个问题。

于 2019-07-29T08:20:30.583 回答