You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Puppeteer JS通过类名获取所有data-id值的数组?

解决方法

你的代码存在两个问题:

  • 选择器错误:你使用了#card-info(id选择器),但目标元素的标识是class为card-info,应该改用类选择器.card-info
  • 方法错误:page.$eval仅会获取单个匹配元素,要批量获取多个元素,需要使用page.$$eval

正确代码如下:

const ids = await page.$$eval(".card-info", (elements) => {
  return elements.map(el => el.getAttribute("data-id"));
});
// 也可以用dataset属性更简洁
// const ids = await page.$$eval(".card-info", (elements) => {
//   return elements.map(el => el.dataset.id);
// });
console.log(ids); // 输出 ["1", "2", "3", "4", "5", "6"]

简单说明:

  • page.$$eval会先找到所有匹配.card-info的元素,将它们组成数组传入回调函数
  • 回调内通过map遍历元素数组,提取每个元素的data-id值,最终返回包含所有id的数组

内容的提问来源于stack exchange,提问作者Appliance Error Codes Admin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:22:50