如何高效处理puppeteer等待?

问题描述 投票:0回答:1

下面的代码在添加 75 秒延迟的情况下工作正常,但该延迟不是静态的,它会根据文件的大小而变化,因此我想删除该延迟并用更好的解决方案替换它。 单击“保存并继续”按钮后,页面将获取数据 2-4 分钟,然后单击“让我们开始”按钮。

我尝试了延迟功能,它工作得很好,但由于获取数据不是静态的,我想要一个更好的解决方案。

//function to add delays
const delay = (time) => new Promise((resolve) => setTimeout(resolve, time));

//another save and continue click
const saveContBtn2 = await page.waitForSelector(
  '::-p-xpath(//button[text()="Save & Continue"])'
);
await saveContBtn2.click();

//let's start click
await delay(75000);
const letsStart = await page.waitForSelector(
  '::-p-xpath(//button[text()="Let\'s start"])'
);
await letsStart.click();
javascript node.js puppeteer
1个回答
0
投票

不要使用手动延迟。 Puppeteer 中的所有等待功能都可以配置以实现更长的超时。你只需要更新

const letsStart = await page.waitForSelector(
  '::-p-xpath(//button[text()="Let\'s start"])'
);

const letsStart = await page.waitForSelector(
  '::-p-xpath(//button[text()="Let\'s start"]',
  {timeout: TIMEOUT}
);
© www.soinside.com 2019 - 2024. All rights reserved.