检查复选框的状态是否已选中?
Check State of check box as checked or Not?
我正在尝试验证复选框的状态是否已选中,如果状态为假,则单击如果不执行其他操作。我应该使用 .getAttribute() 还是 .getState()。我想我应该使用 get state.
WebElement checkbox = driver.findElement(By.name("companyOptionsForm:mandateVerificationTotals"));
if (checkbox.getState() == true) {
//do something
} else if (checkbox.getState()== false) {
//do something
}
复选框的HTML
< input name = "companyOptionsForm:mandateVerificationTotals"
type = "checkbox"role = "checkbox"aria - checked = "true"
class = "dijitReset dijitCheckBoxInput"data - dojo - attach - point = "focusNode"
data - dojo - attach - event = "ondijitclick:_onClick"
value = "on"tabindex = "0"id = "mandateVerificationTotals"
checked = "checked" style = "user-select: none;" >
然而,当我使用 .getState() 时,eclipse 在它下面显示一条红线。
做这样的事情:
WebElement checkbox = driver.findElement(By.name("companyOptionsForm:mandateVerificationTotals"));
if (checkbox.isSelected()) {
//do something
} else {
//do something else
}
AWT Checkbox 有一个名为 getState() 的方法,但没有一个名为 isSelected() 的方法。
Swing JCheckBox 有一个名为 isSelected() 的方法,但没有一个名为 getState() 的方法。
正如@Arthur 所展示的,不要将布尔值与 true 或 false 进行比较;只需使用
if (booleanVariable)
或 if (!booleanVariable)
您还可以使用 javascript
来验证复选框是否被选中
public boolean isChecked(WebElement element) {
return (boolean) ((JavascriptExecutor) driver).executeScript("return arguments[0].checked", element);
}
我正在尝试验证复选框的状态是否已选中,如果状态为假,则单击如果不执行其他操作。我应该使用 .getAttribute() 还是 .getState()。我想我应该使用 get state.
WebElement checkbox = driver.findElement(By.name("companyOptionsForm:mandateVerificationTotals"));
if (checkbox.getState() == true) {
//do something
} else if (checkbox.getState()== false) {
//do something
}
复选框的HTML
< input name = "companyOptionsForm:mandateVerificationTotals"
type = "checkbox"role = "checkbox"aria - checked = "true"
class = "dijitReset dijitCheckBoxInput"data - dojo - attach - point = "focusNode"
data - dojo - attach - event = "ondijitclick:_onClick"
value = "on"tabindex = "0"id = "mandateVerificationTotals"
checked = "checked" style = "user-select: none;" >
然而,当我使用 .getState() 时,eclipse 在它下面显示一条红线。
做这样的事情:
WebElement checkbox = driver.findElement(By.name("companyOptionsForm:mandateVerificationTotals"));
if (checkbox.isSelected()) {
//do something
} else {
//do something else
}
AWT Checkbox 有一个名为 getState() 的方法,但没有一个名为 isSelected() 的方法。
Swing JCheckBox 有一个名为 isSelected() 的方法,但没有一个名为 getState() 的方法。
正如@Arthur 所展示的,不要将布尔值与 true 或 false 进行比较;只需使用
if (booleanVariable)
或 if (!booleanVariable)
您还可以使用 javascript
来验证复选框是否被选中
public boolean isChecked(WebElement element) {
return (boolean) ((JavascriptExecutor) driver).executeScript("return arguments[0].checked", element);
}