我正在对一个应用程序进行自动化测试,我面临一个场景来验证是否使用自动化代码选中了复选框
我的 web 应用程序是用 angular js 开发的,开发人员使用了 Checked 属性
我尝试使用 .isselected,但它对我不起作用。
最佳答案
您可以使用包含“.ng-not-empty”或“ng-empty”类的选择器:
List<WebElement> eltsUnchecked = driver.findElements(By.cssSelector("input[ng-model='checkboxModel.value1'].ng-empty"));
bool isNotCheched = eltsUnchecked.size() > 0;
if (isNotCheched) {
// check the checkbox
eltsUnchecked.get(0).click();
}
List<WebElement> eltsChecked = driver.findElements(By.cssSelector("input[ng-model='checkboxModel.value1'].ng-not-empty"));
bool isCheched = eltsChecked.size() > 0;
if (isCheched) {
// uncheck the checkbox
eltsChecked.get(0).click();
}
或者通过检查类属性中是否存在“.ng-not-empty”或“ng-empty”:
WebElement checkbox = driver.findElement(By.cssSelector("input[ng-model='checkboxModel.value1']"));
bool isCheched = checkbox.getAttribute("class").contains("ng-not-empty");
bool isNotChecked = checkbox.getAttribute("class").contains("ng-empty");
if (isCheched) {
// uncheck the checkbox
checkbox.click();
} else if (isNotChecked) {
// check the checkbox
checkbox.click();
}
但是如果您使用的是“checked”属性,那么:
WebElement checkbox = driver.findElement(By.cssSelector("input[ng-model='checkboxModel.value1']"));
bool isCheched = checkbox.getAttribute("checked").length > 0;
bool isNotChecked = checkbox.getAttribute("checked").length == 0;
关于java - 如何验证复选框在 selenium webdriver 中是否已选中或未选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36369368/