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

如何获取同class的a元素下strong标签多文本?可基于label文本筛选

基于Label文本筛选获取对应Strong标签文本

目标HTML结构

<a id="id_1008326" class="activity"> 
<strong>heizil</strong> : 
<label id="check_label">  " First Device Test"
</label>

<a id="id_10808296" class="activity"> 
<strong>riya</strong>: 
<label id="check_label"> " Second Device Test"
</label>

当前问题

原代码仅能获取第一个strong标签文本:

System.out.println(driver.findElement(By.xpath("//a[@class='activity']/strong")).getText());

输出仅为heizil,无法获取所有符合条件的文本(如riya)。需求是基于label标签的文本内容(如“First Device Test”/“Second Device Test”)作为筛选条件,获取所有对应strong标签文本,预期输出heizil,riya。

解决方案

使用findElements批量定位符合条件的元素,结合XPath通过label文本筛选对应a节点下的strong标签:

代码示例(Java)

// 定位所有包含指定label文本的a元素下的strong标签
List<WebElement> strongElements = driver.findElements(By.xpath(
    "//a[@class='activity'][.//label[@id='check_label' and contains(text(), 'Device Test')]]/strong"
));

// 收集所有文本并拼接成预期格式
List<String> nameList = new ArrayList<>();
for (WebElement elem : strongElements) {
    nameList.add(elem.getText().trim());
}
String result = String.join(",", nameList);
System.out.println(result); // 输出:heizil,riya

说明

  • contains(text(), 'Device Test')用于匹配包含指定关键词的label文本,若需要精确匹配,可替换为text()=' " First Device Test"'(注意保留文本中的空格和引号)
  • findElements会返回所有符合条件的元素,而非仅第一个
  • 最后通过String.join将收集到的文本拼接成逗号分隔的格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:06:26