我想根据使用CheckBox
给出的名称来识别xpath
,但是无法直到该文字唯一到达。
html代码如下。如何获取html中提到的'text1'或'text2'的动态xpath?
<html>
<body>
<div class="section-content">
<div>
<input class="cls" type="checkbox"/>
text1
</div>
</div>
<div class="section-content">
<div>
<input class="cls" type="checkbox"/>
text2
</div>
</div>
<div class="section-content">
<div>
<input class="cls" type="checkbox"/>
text3
</div>
</div>
<div class="section-content">
<div>
<input class="cls" type="checkbox"/>
text4
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
以下代码对我有用
driver.findElement(By.xpath("//div[contains(.,'text4')]/input")).click();
答案 1 :(得分:0)
要将文本标识为 text1 ,您可以使用以下代码行:
WebElement element_text1 = driver.findElement(By.xpath("//div[@class='section-content']/div[contains(normalize-space(), 'text1')]"));
要识别与文本为 text1 的节点相关联的复选框,您可以使用以下代码行:
driver.findElement(By.xpath("//div[@class='section-content']/div[contains(normalize-space(), 'text1')]/input"));
答案 2 :(得分:-1)
试试这个:
WebElement body = dr.findElement(By.xpath("/html/body"));
List<WebElement> div = dr.findElements(By.className("section-content"));
for(int i=1;i<div.size();i++)
{
String checkBoxText = dr.findElement(By.xpath("/html/body/div["+i+"]/div")).getText();
if(checkBoxText.equals("text3"))
{
dr.findElement(By.xpath("/html/body/div["+i+"]/div/input")).click();
break;
}
}