【问题标题】:Puppeteer wait for page to fully load before proceedingPuppeteer 等待页面完全加载后再继续
【发布时间】:2023-03-14 04:10:01
【问题描述】:

这是我的代码。所以基本上我在页面中有一个元素,我将点击它。我不确定 waitForNavigation 是否是此处使用的正确功能,但我希望页面在继续下一步之前完全加载。

我可以使用 waitForSelector 作为解决方法,但是如果我没有可以搜索的固定选择器怎么办?

    await Promise.all([
      this.page.waitForNavigation(),
      element.click()
    ])

【问题讨论】:

  • 试试await page.goto(url, { waitUntil: 'networkidle2' });
  • 但我不使用 URL,就像我必须点击我的页面上的按钮或链接来打开一个新的 url。

标签: javascript puppeteer


【解决方案1】:

使用options.waitUntil (doc)

await Promise.all([
  this.page.waitForNavigation({ waitUntil: 'networkidle2' }),
  element.click()
])

【讨论】:

  • 效果不佳,我尝试了 waitUntil 中的所有选项
  • @Octane 不共享您正在抓取的页面和完整代码,任何人都可以做的最好的事情就是猜测。你能提供一个minimal reproducible example 来说明“不工作”吗?谢谢。
  • @Octane。提示:要调试这种行为,请使用激活的 V8 调试器 node --inspect-brk 运行您的脚本,并将 headless: false 选项传递给 puppeteer。然后,您可以解决您的问题,在 V8 REPL 中进行尝试,并在需要的地方添加 debugger 语句。
猜你喜欢
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 2011-08-26
  • 2013-04-25
  • 2019-11-01
  • 2021-05-06
相关资源
最近更新 更多