javascript - 按类名称收集元素,然后单击每个元素-Puppeteer

标签 javascript node.js google-chrome-devtools puppeteer headless-browser

使用Puppeteer,我想使用特定的类名获取页面上的所有元素,然后遍历并单击每个元素。

使用jQuery,我可以通过以下方法实现此目的:

var elements = $("a.showGoals").toArray();

for (i = 0; i < elements.length; i++) {
  $(elements[i]).click();
}

我如何使用Puppeteer实现此目的?

更新

在下面尝试了Chridam的答案,但我无法使它起作用(尽管答案很有帮助,所以感谢您的到来),所以我尝试了以下操作,并且此方法有效:
 await page.evaluate(() => {
   let elements = $('a.showGoals').toArray();
   for (i = 0; i < elements.length; i++) {
     $(elements[i]).click();
   }
});

最佳答案

使用 page.evaluate 执行JS:

const puppeteer = require('puppeteer');

puppeteer.launch().then(async browser => {
    const page = await browser.newPage();
    await page.evaluate(() => {
        let elements = document.getElementsByClassName('showGoals');
        for (let element of elements)
            element.click();
    });
    // browser.close();
});

关于javascript - 按类名称收集元素,然后单击每个元素-Puppeteer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48673906/

相关文章:

javascript - chrome 是否有某种 api 可以让您控制下载

javascript - 将说明显示为工具提示或弹出窗口

javascript - 可以是 String 或 Boolean 的 Spring 和 Json 字段映射

arrays - Nodejs S3删除多个对象错误

javascript - 是否可以读取应用于输入占位符的 CSS 属性?

java - 从 Google Chrome 的开发者工具获取信息

javascript - 在自动完成选择期间禁用光标移动

javascript - 希望使用 Javascript 实现带有链接的网页自动化

javascript - 无法在 Windows 7/64 位上启动 Express 应用

node.js - 如何在 firebase 中获取当前更新值