如何<div>以有效的方式使用 xpath 从标签中获取 id



尝试了多种方法来获取id,但我找不到确切的id或有效的结果,因为有多个id,并且它共享多个相同的类。

尝试了以下方法,但我没有得到所需的确切Id

//Approach 1
divId = driver.findElement(By.xpath("(//div[@data-activity-type='CompatCheck'])")).getAttribute("id");
//Approach 2
divId = driver.findElement(By.xpath("(//div[@data-activity-type='CompatCheck'])[2]")).getAttribute("id");
//Approach 3
driver.findElement(By.xpath("//div[@data-activity-type='CompatCheck'] and contains(.,'AndroidTesting')]")).getAttribute("id"));

请在下面找到HTML代码:

<div> 
<strong>Reena</strong>: 
<label id="compatcheck_label">
<em class="Highlight" style="padding: 1px; box-shadow: rgb(229, 229, 229) 1px 1px; border-radius: 3px; 
background-color: rgb(0, 191, 255); color: rgb(0, 0, 0); font-style: inherit;" match="test" loopnumber="472046515">Test</em>device testing - AndroidTesting
</label>
</div>
<div>
<span style="float: none;" class="special-apps-list">(Special Tag) 
</span>
<label id="label_1100"></label>                            
<span style="float: none;">0d 4h 39m 49s</span>
</div>
<div id="div_1100" data-activity-type="CompatCheck" class="mainActivity">
</div>

从上面的HTML代码中观察到,label id和div id是相同的(1100),与其他类不同的是";设备测试-AndroidTesting";

有没有什么方法可以通过使用";设备测试-AndroidTesting";因为它是唯一唯一唯一且恒定的元素。

使用";设备测试-AndroidTesting";作为唯一的

label_1100
div_1100


根据给定的HTML打印所需的文本,您可以使用以下定位器策略

  • 打印label_1100

    System.out.println(driver.findElement(By.xpath("//label[@id='compatcheck_label'][contains(., 'AndroidTesting')]//following::div//label[1]")).getAttribute("id"));
    
  • 打印div_1100

    System.out.println(driver.findElement(By.xpath("//label[@id='compatcheck_label'][contains(., 'AndroidTesting')]//following::div[2]")).getAttribute("id"));
    

相关内容

  • 没有找到相关文章

最新更新