Puppeteer 等待页面跳转完成的条件和时机

4 min read

使用 page.waitForNavigation() 方法等待页面跳转完成:

await Promise.all([
  page.click('a'),
  page.waitForNavigation({ waitUntil: 'networkidle0' }),
]);

以上代码将等待页面跳转完成,直到网络空闲状态为止。这意味着页面中所有的网络请求都已完成,并且没有其他网络请求正在进行中。

使用 page.waitForSelector() 方法等待特定元素出现:

await Promise.all([
  page.click('a'),
  page.waitForSelector('#my-element'),
]);

以上代码将等待页面跳转完成,直到特定元素出现为止。

使用 page.waitForFunction() 方法等待自定义条件:

await Promise.all([
  page.click('a'),
  page.waitForFunction(() => {
    return document.readyState === 'complete';
  }),
]);

以上代码将等待页面跳转完成,直到页面状态为 "complete" 为止。