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

时间:2020-07-11 17:57:08

标签: puppeteer google-chrome-headless pyppeteer

我正在使用 pyppeteer 触发无头chrome并执行一些操作。但是首先我要完全加载网页的所有元素。 pyppeteer的官方文档建议使用 waitUntil 参数,该参数带有多个参数。

我的疑问是我是否必须通过所有参数或所有参数?请提出以下摘要是否对我有帮助?

await page.goto(url, {'waitUntil' : ['load', 'domcontentloaded', 'networkidle0', 'networkidle2']})

1 个答案:

答案 0 :(得分:2)

否,您不必将所有可能的选项都传递给'waitUntil'。您可以选择其中一个,也可以同时选择更多选项,但前提是:

  • 没有使用单页应用,
  • 对所有网络连接都不感兴趣(例如,第三方跟踪)

那么您可以选择:'domcontentloaded'等待所有元素在页面上呈现。

await page.goto(url, {'waitUntil' : 'domcontentloaded'})

详细选项:

  • load:触发load事件时。

  • domcontentloaded:触发DOMContentLoaded事件时。

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

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

[source]

注意:当然,NodeJ的伪程序库也是如此,它们在waitUntil方面的工作方式相同。