在 page.evaluate 中等待 setTImeout

wait for setTImeout in page.evaluate puppeteer

我正在使用这个代码

  await new Promise((resolve, reject) => {
    var list = [1, 2, 3, 4];
    for (var x = 0, ln = list.length; x < ln; x++) {
      setTimeout(async () => {
        console.log('scrolling');
        await page.evaluate(() => {
          window.scrollBy(0, window.innerHeight);
        });
      }, x * 2000);
    }
    resolve();
  });

所有setTimeout都结束了怎么解决?

您可以使用 puppeteer 的 built-in 函数代替 setTimeout:

await page.waitForTimeout(x * 2000);