pyppeteer 等待页面所有元素加载完毕

Mah*_*esh 6 google-chrome-headless puppeteer pyppeteer

我正在使用pyppeteer触发无头铬并执行一些操作。但首先我希望网页的所有元素都能完全加载。pyppeteer 的官方文档建议使用waitUntil参数,该参数带有超过 1 个参数。

我的疑问是我是否必须传递所有参数或任何一个特定参数就足够了?请建议以下代码片段对我的情况是否有帮助?

await page.goto(url, {'waitUntil' : ['load', 'domcontentloaded', 'networkidle0', 'networkidle2']})
Run Code Online (Sandbox Code Playgroud)

the*_*ton 8

不,您不必将所有可能的选项传递给'waitUntil'. 您可以选择其中一个,也可以根据需要同时选择多个选项,但如果您是:

  • 不处理单页应用程序,
  • 对所有网络连接不感兴趣(例如第三方跟踪)

那么你就可以这样做:'domcontentloaded'等待所有元素都呈现在页面上。

await page.goto(url, {'waitUntil' : 'domcontentloaded'})
Run Code Online (Sandbox Code Playgroud)

详细选项:

  • load:当load事件被触发时。

  • domcontentloaded: 当DOMContentLoaded事件被触发时。

  • networkidle0:当网络连接数不超过 0 且持续时间至少 500 毫秒时。

  • networkidle2:当至少 500 毫秒内网络连接不超过 2 个时。

[来源]

注意:当然,NodeJs puppeteer 库也是如此,它们在waitUntil.