当前位置: 首页 > 面试题库 >

木偶-向下滚动直到不再

督灿
2023-03-14
问题内容

我处于向下滚动时会创建新内容的情况。新内容具有特定的类名称。

我如何继续向下滚动直到所有元素加载完毕?换句话说,我想达到一个阶段,如果我继续向下滚动,则不会加载任何新内容。

我正在使用代码向下滚动,再加上

await page.waitForSelector('.class_name');

这种方法的问题在于,在所有元素加载完之后,代码将继续向下滚动,没有创建新元素,最终我收到超时错误。

编辑:这是代码

await page.evaluate( () => {
                window.scrollBy(0, window.innerHeight);
            });
await page.waitForSelector('.class_name');

问题答案:

试一下:

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({
        headless: false
    });
    const page = await browser.newPage();
    await page.goto('https://www.yoursite.com');
    await page.setViewport({
        width: 1200,
        height: 800
    });

    await autoScroll(page);

    await page.screenshot({
        path: 'yoursite.png',
        fullPage: true
    });

    await browser.close();
})();

async function autoScroll(page){
    await page.evaluate(async () => {
        await new Promise((resolve, reject) => {
            var totalHeight = 0;
            var distance = 100;
            var timer = setInterval(() => {
                var scrollHeight = document.body.scrollHeight;
                window.scrollBy(0, distance);
                totalHeight += distance;

                if(totalHeight >= scrollHeight){
                    clearInterval(timer);
                    resolve();
                }
            }, 100);
        });
    });
}

资料来源:https :
//github.com/chenxiaochun/blog/issues/38



 类似资料:
  • 我看了很多问题,但列出的解决方案都没有解决我的问题:Scrollview不会滚动到底部的空白处 ScrollView不会滚动到底部 (Android) ScrollView不会一直滚动到我的线性布局的底部 我有一个具有以下布局的应用程序,其中包含ScrollView中的LinearLayout 基本上,这个布局被用于一个片段。在这个片段中,我用查询网站得到的字符串为tvPowers和tvAbili

  • 问题内容: 有人可以帮助我使用 Java* 使用 WebDriver 自动 向下滚动功能 吗? *** 就我而言,当我垂直向下滚动鼠标时,对于yahoo邮件就会显示( 可见 )。 问题答案: 您可以使用以下代码垂直向下滚动: 同样,也可以通过将y坐标更改为负值来向上滚动: 您还可以使用以下代码: 对于向下滚动: 向上滚动:

  • 本文向大家介绍vim 向下滚动,包括了vim 向下滚动的使用技巧和注意事项,需要的朋友参考一下 示例 命令 描述 Ctrl+E 向下滚动一行。 Ctrl+D 向下滚动半屏(可使用该scroll选项配置)。 Ctrl+F 向下滚动全屏。 z+ 在窗口顶部的窗口下方绘制第一行。

  • 问题内容: 我对Linkedin中技能部分的“加载更多”按钮感到困惑。我 在找到按钮的xpath时收到此错误: 问题是我的元素在页面上不可见,因此我一直试图 找到一种方法来在页面上连续滚动直到按钮可见。 我正在尝试对多个配置文件进行forloop。 我的相关代码: Attempts 1. 随着 页面滚动就在元件的下方,因此该元素不再是可见的,随后发生同样的错误。 我也尝试过move_to_elem

  • 我想添加一种在中滚动菜单项的方法,就像在中滚动项列表一样。 假设我有10个菜单项。我希望一次只显示5个菜单项,我将使用底部或顶部的垂直滚动按钮来显示未列出的菜单项,并隐藏刚才看到的菜单项。 有可能吗?我使用的是JIDE软件的,点击它时会显示。我试图保持放置的命令栏的外观,因此除非真的有必要,否则我不想用替换它。

  • 我正在使用Firefox 47.0.1和木偶驱动程序geckodriver-v0。8.0-win32。但我遇到了无法访问的浏览器异常,无法打开。 我的代码片段如下所示: 将异常显示为:- 组织。openqa。硒。遥远的UnreachableBrowserException:无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败。构建信息:版本:'2.53.0',版本:'35ae25b',时