请找到HTML:
<div id="086" data-activity-type="CompatCheck" class="Activity"></div>
这里只有常量值是data-activity-type="CompatCheck"
,并且类名对于所有其他元素都是相同的。
当尝试使用data-activity-type
打印id时,即CompatCheck使用xpath
预期输出:
086
问题2:观察到唯一唯一的值是id,在这种情况下我们如何获取。
请查找HTML:
<div id="0007" data-activity-type="CompatCheck" class="Activity"></div>
<div id="110007" data-activity-type="CompatCheck" class="Activity"</div>
在尝试使用以下代码行时:
findElement(By.xpath("//div[@data-activity-type='CompatCheck']")).getAttribute("id");
我只得到了第一个id,即;0007
但是我总是需要第二个id="0";110007";,你能建议买第二个身份证吗
由于属性data-activity-type="CompatCheck"
是唯一的,您可以使用它,并且可以使用以下任一定位器策略:
-
使用cssSelector:
System.out.println(driver.findElement(By.cssSelector("div[data-activity-type='CompatCheck']")).getAttribute("id"));
-
使用xpath:
System.out.println(driver.findElement(By.xpath("//div[@data-activity-type='CompatCheck']")).getAttribute("id"));
控制台输出:
086
使用XPath或CSS选择器,您可以根据任何常量属性值定位web元素。也就是说,它可以基于常量类名值或id或任何其他属性。在您的情况下,常量属性值为data-activity-type="CompatCheck"
。因此,您可以通过XPath或CSS Selector定位此元素,然后提取id
属性,如下所示:
XPath
driver.findElement(By.xpath("//div[@data-activity-type='CompatCheck']")).getAttribute("id");
CSS选择器
driver.findElement(By.cssSelector("div[data-activity-type='CompatCheck']")).getAttribute("id");