如何在 puppeteer 中获取列表中的所有元素

How to get all elements in a list in puppeteer

我有一个包含文件夹列表的页面容器。我想一个一个地点击它们。附上页面源码页面截图。

我试过下面的代码:

   let elements = document.getElementsByClassName('document-container')

   for (let element of elements)
   {
    await  element.click();
   }
    

但这不起作用。

您使用 puppeteer 在何处启动当前页面? 你必须使用 page.click(elementToClick);.

此处,您正在尝试获取指定 div 内的元素。这意味着,您需要获取指定容器 div.

的子容器

要获取 HTML 元素的所有子元素, 您始终可以使用 .children 属性,这会将 return 元素数组包含在另一个元素中。并且将 return 一个空数组,以防父元素没有子元素。

在您的代码中,您可以尝试这样的操作:

let container = document.getElementByClassName('document-container');

let elements = container.children;

for(element in elements){
  element.click();
}

看看是否有效。

您可以使用 page.$$ to collect all instances of the .document-container elements as element handles它在页面上下文中运行 document.querySelectorAll

然后您可以使用 elementHandle.click 重复点击(因为您已经尝试过了)。

const elHandleArray = await page.$$('.document-container')

for (const el of elHandleArray) {
  await el.click()
}