如果选中和未选中xpaths相同,如何验证复选框

时间:2018-05-31 04:01:33

标签: selenium selenium-webdriver

M无法验证复选框,是否已选中 因为HTML都是相同的

我尝试了isSelected(),但它无法正常工作

以下是选定和未选择的

的HTML代码

1)选中

<label class="c-account-access-panel__checkbox " for="23336" data-js-checkbox-label="">
<input id="23336" class="c-account-access-panel__checkbox-input" type="checkbox" 
data-label-for-value-missing="Please select at least one account from the options below" data-form-field-validation-on-grid="" 
required="" checked="" data-js-checkbox="" value="DE29973399" name="payer"/>
<div class="c-account-access-panel__checkbox-symbol"/>

2)未选中

<label class="c-account-access-panel__checkbox " for="23336" data-js-checkbox-label="">
<input id="23336" class="c-account-access-panel__checkbox-input" type="checkbox" 
data-label-for-value-missing="Please select at least one account from the options below" data-form-field-validation-on-grid="" 
required="" checked="" data-js-checkbox="" value="DE29973399" name="payer"/>
<div class="c-account-access-panel__checkbox-symbol"/>

提前致谢!

4 个答案:

答案 0 :(得分:0)

如果 isSelected()不适合您。然后,您可以使用 JavascriptExecutor 来完成您的任务。在 JS 语句后面会告诉您目标状态复选框。

document.getElementById("23336").click();
document.getElementById("23336").checked;

checked方法返回true或false,具体取决于复选框状态。

答案 1 :(得分:0)

您可以使用getAttribute方法进行验证。

首先使用任何唯一定位器

选择webElement
 WebElement checkbox=driver.findElement(By.xpath(".//input[@type='checkbox']"));

如果选中该复选框,则checkbox.getAttribute("checked")会将结果显示为true,否则会将结果显示为null。因此,您可以使用checkbox.getAttribute("checked")

添加条件

答案 2 :(得分:0)

根据 Java Docs isSelected()方法确定是否选择了元素。此操作仅适用于<input>元素,例如复选框<select>代码中的选项和单选按钮

要验证是否选中了所需的复选框,您可以使用以下代码块:

boolean checkboxSelected = driver.findElement(By.xpath("//input[@class='c-account-access-panel__checkbox-input' and @name='payer']")).isSelected();

答案 3 :(得分:0)

使用xpath表达式,如:(// div [@ id ='23336')[1]或(// div [@ id ='23336')[2]使它们成为唯一元素然后执行.isselected( )