首页 > 解决方案 > 单击父元素内的按钮的Node.js Puppeteer问题

问题描述

我正在使用 puppeteer 库来抓取网站。我通过以下方式获得精确类的所有元素:

let items = await page.$$("li.item");
for (let item of items) {
    let elementText = await page.evaluate(
        (element) => element.textContent,
    item);
    console.log(elementText );    
}

我得到所有元素的文本。有用。问题是我需要单击这些元素内的按钮。有一个带li.item类的盒子,里面有一个按钮。我需要按下每个框内的每个按钮。我该怎么做?我尝试element.children了甚至控制台日志记录element,但它只显示未定义。我在这里做错了什么?

标签: javascriptnode.jsweb-scraping

解决方案


嗨,索瓦姆,

let buttons = await page.$$("//li//button");
for (let button of buttons) {
    await button.click();   
}

或者

let buttons = await page.$$("//li.item//button");
for (let button of buttons) {
    await button.click();   
}

您可以像这样单击带有 page.click 的按钮。


推荐阅读