如何在 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()
}
我有一个包含文件夹列表的页面容器。我想一个一个地点击它们。附上页面源码页面截图。
我试过下面的代码:
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()
}