我有一个包含文件夹列表的页面容器。我想一一点击它们。附件是带有页面源的页面截图。
我试过下面的代码:
let elements = document.getElementsByClassName('document-container')
for (let element of elements)
{
await element.click();
}
但这不起作用。
您可以使用将元素page.$$
的所有实例收集.document-container
为元素句柄。它 document.querySelectorAll
在页面的上下文中运行。
然后,您可以使用elementHandle.click
(正如您已经尝试过的那样)来迭代点击。
const elHandleArray = await page.$$('.document-container')
for (const el of elHandleArray) {
await el.click()
}
您在哪里使用 puppeteer 启动了当前页面?你必须使用page.click(elementToClick);
.
在这里,您试图获取指定div
. 这意味着,您需要获取指定容器的子代div
。
要获取 HTML 元素的所有子元素,您始终可以使用.children
属性,它将返回另一个元素内的元素数组。并且将返回一个空数组,以防父元素没有子元素。
在您的代码中,您可以尝试这样的事情:
let container = document.getElementByClassName('document-container');
let elements = container.children;
for(element in elements){
element.click();
}
看看它是否有效。