首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用NodeJS Puppeteer滚动多个页面,但只滚动了1个页面,其他页面没有滚动

NodeJS Puppeteer是一个基于Node.js的无头浏览器库,可以模拟用户在浏览器中的操作。它提供了一系列的API,可以用于实现自动化的网页操作,包括滚动页面。

要实现滚动多个页面,可以使用Puppeteer的页面.evaluate()方法来执行JavaScript代码,通过修改页面的scrollTop属性来实现滚动。以下是一个示例代码:

代码语言:txt
复制
const puppeteer = require('puppeteer');

async function scrollMultiplePages() {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // 打开第一个页面
  await page.goto('https://www.example.com/page1');

  // 滚动第一个页面
  await page.evaluate(() => {
    window.scrollTo(0, document.body.scrollHeight);
  });

  // 等待一段时间,使页面加载完成
  await page.waitForTimeout(2000);

  // 打开第二个页面
  await page.goto('https://www.example.com/page2');

  // 滚动第二个页面
  await page.evaluate(() => {
    window.scrollTo(0, document.body.scrollHeight);
  });

  // 等待一段时间,使页面加载完成
  await page.waitForTimeout(2000);

  // 打开第三个页面
  await page.goto('https://www.example.com/page3');

  // 滚动第三个页面
  await page.evaluate(() => {
    window.scrollTo(0, document.body.scrollHeight);
  });

  // 等待一段时间,使页面加载完成
  await page.waitForTimeout(2000);

  // 关闭浏览器
  await browser.close();
}

scrollMultiplePages();

上述代码中,我们首先创建了一个浏览器实例,并打开了第一个页面。然后,使用page.evaluate()方法执行JavaScript代码,将页面滚动到底部。接着,等待一段时间,使页面加载完成。然后,重复以上步骤,打开并滚动其他页面。

需要注意的是,为了确保页面加载完成后再进行滚动操作,我们使用了page.waitForTimeout()方法来等待一段时间。根据实际情况,可以调整等待的时间长度。

关于Puppeteer的更多信息和详细的API文档,可以参考腾讯云的产品介绍页面:Puppeteer - 腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 使用node+puppeteer+express搭建截图服务

    一开始我们的需求是打开报表的某个页面然后把图截出来,然后调用企业微信发送给业务群 这中间我尝试了多种技术,比如html2image,pdf2image、selenium这些,这其中截图 比体验较好的也就selenium了,不过我们有些页面加载的时间较长,selenium似乎对html互操作性 也不是很完美(通过Thread.sleep并不能完美的兼容绝大多数报表),另外还有一个比较要命的 是Chromium渲染出来的页面似乎也有不同程度的问题(就是不好看),当然后面一个偶然的机会在 某不知名网站看到有网友用puppeteer来实现截图,遂~,一通骚操作就搭了一套出来(虽然最终方案并不是这个 ,当然这是后话哈~),这里就拿出来说说哈~

    02
    领券