【问题标题】:Puppeteer - simulate scroll downPuppeteer - 模拟向下滚动
【发布时间】:2020-06-04 12:46:29
【问题描述】:

我看到有像page.mouse.down() 这样的函数,但它什么也没做。 你知道滚动的方法吗?

【问题讨论】:

    标签: javascript puppeteer


    【解决方案1】:

    页面加载后执行常规 JS 滚动到某个元素:

    https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTohttps://developer.mozilla.org/en-US/docs/Web/API/Window/scrollBy

    如果您想要滚动到某个特定的 DOM 元素,则需要它与顶部的偏移量。

    例如:

    await page.evaluate(() => {
      const element = document.getElementById('some-id');
      const y = element.getBoundingClientRect().top + window.pageYOffset;
      window.scrollTo({top: y});        
    });
    

    当然,您可以使用任何选择器,而不仅仅是通过 id。但请确保选择单个 DOM 元素以使用 getBoundingClientRect()

    【讨论】:

      【解决方案2】:

      page.mouse.down() 用于模拟鼠标点击,而不是滚动。这就是为什么它不能做你想做的事。

      您可能需要查看在page.evaluate(...) 范围内使用的window.scrollTowindow.scrollBy 函数(其中window 变量可用)。然后,您可以通过给定的distance 滚动页面。请看下面已经给出答案的话题:Puppeteer - scroll down until you can't anymore

      【讨论】:

        猜你喜欢
        • 2011-08-14
        • 2020-11-20
        • 2019-01-02
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-26
        相关资源
        最近更新 更多