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

如何用XPath从div标签获取指定ID?两类场景技术咨询

XPath 解决方案:两种HTML场景的ID提取

场景一:通过唯一data属性提取单个元素的ID

给定HTML代码:

<div id="086" data-activity-type="CompatCheck" class="Activity"></div>

已知data-activity-type="CompatCheck"是唯一标识,class属性重复,需提取该div的id。

解决方法:

可以通过XPath精准定位元素后提取id属性:

String targetId = driver.findElement(By.xpath("//div[@data-activity-type='CompatCheck']")).getAttribute("id");

执行后targetId的值为086。

解释:用@data-activity-type='CompatCheck'锁定唯一匹配的div元素,再通过getAttribute("id")直接提取其id属性值。

场景二:提取同属性匹配的第二个元素ID

给定HTML代码:

<div id="0007" data-activity-type="CompatCheck" class="Activity"></div>
<div id="110007" data-activity-type="CompatCheck" class="Activity"></div>

原代码只能获取第一个元素的id,需提取第二个元素的id。

解决方法:

利用XPath的索引功能(XPath索引从1开始计数),定位第二个匹配元素:

// 方法一:直接定位第二个元素
String secondId = driver.findElement(By.xpath("//div[@data-activity-type='CompatCheck'][2]")).getAttribute("id");

// 方法二:获取所有匹配元素后取第二个
List<WebElement> compatElements = driver.findElements(By.xpath("//div[@data-activity-type='CompatCheck']"));
String secondId = compatElements.get(1).getAttribute("id"); // Java列表索引从0开始,取索引1对应第二个元素

执行后secondId的值为110007。

解释:[2]指定选择匹配条件的第二个div元素;或者通过findElements获取所有匹配元素的列表,再通过列表索引获取目标元素的id。

内容的提问来源于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 06:50:27