木偶-按类名称计数元素

use*_*421 3 javascript node.js puppeteer

我试图将有关具有特定类名的所有元素的信息放入数组中。

问题是这是一个动态生成的HTML页面,只要向下滚动,该类名称的新元素就会出现。

幸运的是,我事先知道其中有多少个元素。

因此,我的假设解决方案是检查具有该特定类名的元素的数量,并且只要该数量小于我所知道的数量,就可以继续使用。

问题是我不知道如何准确地计算puppeteer中特定类名称的元素,而且API也不是很有用。

Sim*_*llo 9

我想这就是你要找的

const puppeteer = require('puppeteer')

async function count () {
  const browser = await puppeteer.launch()
  const page = await browser.newPage()
  await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'})
  await page.evaluate(_ => {
    window.scrollBy(0, window.innerHeight)
  })

  console.log('how many?', (await page.$$('td.title')).length)

  await browser.close()
}

count()
Run Code Online (Sandbox Code Playgroud)