【问题标题】:puppeteer wait for element disappear or remove from DOMpuppeteer 等待元素消失或从 DOM 中移除
【发布时间】:2020-03-09 01:06:12
【问题描述】:

有什么方法或 Puppeteer API 我们可以等待元素从 Dom 中消失或移除,然后继续执行?

例如,我有一个加载动画,我想等到这个加载动画从 Dom 中删除。

【问题讨论】:

    标签: javascript node.js puppeteer webautomation


    【解决方案1】:

    您可以将 page.waitForFunction 与条件语句一起使用。

    await page.waitForFunction('document.querySelector("#myElement") === null')
    

    https://pptr.dev/#?product=Puppeteer&version=v5.2.1&show=api-pagewaitforfunctionpagefunction-options-args

    【讨论】:

      【解决方案2】:

      如果你在等待 API 响应,或许还是依赖

      await page.waitForResponse(response => response.url() === myUrl && response.status() === 200);
      

      【讨论】:

        【解决方案3】:

        waitForSelector 有一个 hidden 选项,它还检查元素是否在 DOM 中:

        await page.waitForSelector('div', {hidden: true});
        

        【讨论】:

          【解决方案4】:

          试试这个

          await page.waitFor(() => !document.querySelector(querySelector));
          

          甚至是waitForFunction()

          await page.waitForFunction()
          

          【讨论】:

          • waitFor 已弃用。在这种情况下,您可以使用 waitForFunction 代替它。
          猜你喜欢
          • 2018-02-02
          • 2019-12-15
          • 1970-01-01
          • 2020-09-13
          • 2019-12-08
          • 2018-07-31
          • 2020-12-09
          • 1970-01-01
          • 2016-07-28
          相关资源
          最近更新 更多