xpath:无法单击任何复选框

时间:2018-05-28 10:30:53

标签: java selenium xpath

无法单击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

enter image description here

xpath尝试

//*[text()='2.5.1 Formalizar']/ancestor::li[contains(@class,'collapsibleList')]/ul/li/input

2 个答案:

答案 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();