Xml xpath链接两个属性
因此,我正在尝试使用selenium自动化测试,并且需要查看是否选中了特定用户的复选框。页面看起来像这样Xml xpath链接两个属性,xml,selenium,xpath,Xml,Selenium,Xpath,因此,我正在尝试使用selenium自动化测试,并且需要查看是否选中了特定用户的复选框。页面看起来像这样 第一个用户的复选框未选中,第二个复选框未选中。因此,当选中时,有一个checkbox=“checked”属性在未选中时不存在。我不确定我将如何格式化它,以便我能够具体查看我正在寻找的那个盒子。我尝试了(//input[contains(@name='user_5166855'和@checked='checked')),但似乎不起作用 尝试在XPath下面选择 检查一个 //input[@
第一个用户的复选框未选中,第二个复选框未选中。因此,当选中时,有一个checkbox=“checked”属性在未选中时不存在。我不确定我将如何格式化它,以便我能够具体查看我正在寻找的那个盒子。我尝试了
(//input[contains(@name='user_5166855'和@checked='checked'))
,但似乎不起作用 尝试在XPath下面选择
- 检查一个
//input[@name="user_5166855" and @checked]
- 未经检查
//input[@name="user_5166855" and not(@checked)]
请注意,
选中的
是布尔属性,因此不需要验证属性的值-验证存在性应该足够了因此,您已经为第二个用户提供了一个Xpath,您需要做的只是:
public boolean IsCheckBoxChecked()
{
try
{
driver.findElement(By.name("//input[contains(@name='user_5166855' and @checked='checked')]")).getAttribute("checked")
}
catch
{
false
}
}
因此,您在这里所做的是在try块中找到您的元素,然后您的测试将通过,如果元素没有这样的属性(复选框未选中),那么它将返回false,并且断言失败。请努力制作一个可复制的示例,同时查看您尝试通过XPath的可能的副本(使用无效语法)通过.name方法执行
。这肯定行不通。另外,您如何知道OP使用Java?您真的应该使用。Selected
或。isSelected()
等,而不是尝试使用定位器执行此操作。请参阅dup I链接。