无法单击xpath复选框。我想让这个过程动态化以传递任何参数,然后单击我需要的位置。但是,我已尝试使用get输入查找文本,但有些东西应该是错误的,因为当我查找文本的父(输入)时,它会转到另一个属性。我该如何解决这个问题?
HTML代码
<ul class="collapsibleList" style="display: block;">
<li class="">
<input type="checkbox" id="000375" name="000370" class="">
<div style="display: inline" id="000375_lit" class="">2.5.1 Formalizar</div>
</li>
HTML
xpath尝试
//*[text()='2.5.1 Formalizar']/ancestor::li[contains(@class,'collapsibleList')]/ul/li/input
答案 0 :(得分:1)
根据所选文字点击任何复选框,例如 2.5.1 Formalizar 您可以使用以下解决方案:
您可以创建一个函数,该函数将输入作为文本来查找相对<input>
标记,然后单击如下:
public void clickItem(String itemName)
{
driver.findElement(By.xpath("//ul[@class='collapsibleList']/li//div[.='" + itemName + "']//preceding::input[1]")).click();
}
现在您可以使用任何字符串参数调用函数clickItem()
,如下所示:
clickItem("2.5.1 Formalizar");
答案 1 :(得分:0)
您可以单击旁边的标签,而不是单击复选框。它可能有用。
//ul/li/span[text()='2.5.1 Formalizar']
在java中,
driver.findElement(By.xpath("//ui/li/span[text()='2.5.1 Formalizar']").click();