xpath链接两个属性

时间:2018-11-12 15:51:46

标签: xml selenium xpath

因此,我正在尝试使用硒自动进行测试,并且需要查看是否为特定用户选中了一个复选框。页面看起来像这样。

enter image description here

未选中第一个用户的复选框,第二个被选中。因此,当选中时,有一个checkbox =“ checked”属性在未选中时不存在。我不确定如何格式化它,这样我就可以专门查看要查找的内容的框。我尝试了(//input[contains(@name='user_5166855' and @checked='checked')]),但似乎没有用。

2 个答案:

答案 0 :(得分:0)

尝试在XPath下选择

  • 选中了一个

    //input[@name="user_5166855" and @checked]
    
  • 未选中

    //input[@name="user_5166855" and not(@checked)]
    

请注意,checked是布尔属性,因此无需验证属性的值-验证存在性是否足够

答案 1 :(得分:-1)

因此,您已经为第二位用户提供了一个Xpath,您要做的就是:

    public boolean IsCheckBoxChecked()
{
    try
    {
    driver.findElement(By.name("//input[contains(@name='user_5166855' and @checked='checked')]")).getAttribute("checked")
    }
    catch
    {
    false
    }
}

因此,您在这里所做的事情是找到您的元素,在try块中,您的测试将通过,如果没有元素的此类属性(未选中复选框),则它将返回false并且断言失败。