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

Selenium如何获取无类/ID且标签名相同的元素属性值?

解决获取多个meta标签content属性的问题

嘿,我完全懂你现在的困惑!你当前的代码driver.findElement(By.xpath("//meta[@property='article:tag']")).getAttribute("content")只能拿到第一个匹配的<meta>标签的content值,因为findElement()方法本身就只会返回页面中第一个符合定位条件的元素。要获取所有article:tag对应的meta标签内容,得换个思路用批量定位的方法~

正确的实现步骤

你需要用findElements()方法(注意是复数形式)获取所有匹配的元素列表,然后遍历这个列表逐个提取content属性值:

// 1. 获取所有符合条件的meta标签元素集合
List<WebElement> tagMetaElements = driver.findElements(By.xpath("//meta[@property='article:tag']"));

// 2. 创建列表存储所有content值
List<String> tagContentList = new ArrayList<>();

// 3. 遍历元素集合,逐个提取content属性
for (WebElement metaElement : tagMetaElements) {
    String contentValue = metaElement.getAttribute("content");
    tagContentList.add(contentValue);
}

// 此时tagContentList就包含了所有标签值:["amd", "game", "what"]

为什么你之前的尝试没生效?

  • 不存在getAttributes()方法:单个WebElement只有getAttribute()方法,要批量获取必须先拿到所有元素再循环处理;
  • 直接循环单个元素没用:你之前如果是对findElement()返回的单个元素做循环,自然只能处理那一个值,根本碰不到后面的标签。

如果你想依次处理每个值(不存入列表)

也可以直接在循环里做即时处理,比如打印或者业务逻辑操作:

for (WebElement metaElement : tagMetaElements) {
    String currentTag = metaElement.getAttribute("content");
    System.out.println("当前标签值:" + currentTag);
    // 这里添加你需要的业务处理代码
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:56:03