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

如何使用Playwright获取J_ItemPic类img元素的src属性并生成数组

你的代码返回空数组的核心原因是选择器逻辑有误。
从你控制台返回的元素结构img#J_Itemlist_Pic_xxx.J_ItemPic.img可以看出,目标img元素自身就携带了J_ItemPic类,但你使用的.J_ItemPic img[src]选择器,匹配规则是「父元素带有J_ItemPic类、自身带有src属性的img子元素」,和实际元素结构不匹配,所以找不到任何元素。

正确实现代码

// 选择自身带有J_ItemPic类、且存在src属性的img元素
const imgSrcList = await page.$$eval('img.J_ItemPic[src]', imgs => imgs.map(img => img.src));
console.log(imgSrcList);

常见异常场景排查

如果执行后还是拿不到结果,可以对应排查以下两种情况:

  • 图片为懒加载实现:src属性值会在图片进入可视区后才赋值,初始属性可能是data-src/data-original这类自定义字段,修改代码取对应属性即可:
    const imgSrcList = await page.$$eval('img.J_ItemPic', imgs => imgs.map(img => img.getAttribute('data-src')));
    
  • 执行代码时元素还未渲染完成:可以先添加等待逻辑,确认元素挂载到DOM后再执行提取:
    // 等待第一个目标img元素挂载到DOM
    await page.waitForSelector('img.J_ItemPic', { state: 'attached' });
    const imgSrcList = await page.$$eval('img.J_ItemPic[src]', imgs => imgs.map(img => img.src));
    console.log(imgSrcList);
    

内容的提问来源于stack exchange,提问作者writingdeveloper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:30:04