java - 如何验证复选框在 selenium webdriver 中是否已选中或未选中

标签 java selenium-webdriver

我正在对一个应用程序进行自动化测试,我面临一个场景来验证是否使用自动化代码选中了复选框

我的 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/

相关文章:

java - Java Swing 应用程序中的用户授权

Java 混淆行为

java - 使用 RestClusterClient 在 Flink 集群上运行已部署的作业

javascript - 如何使用 Selenium 2/Web Driver javascript API 从选择下拉列表中选择一个选项?

java - 从属性文件设置 SuiteClassess 并在命令行中 indtentify 属性文件

java - binarySearch 方法问题,不接受 int 参数

java - IOException : unexpected response from remote api

cookies - 在 PhantomJS+GhostDriver+WebDriver 客户端配置中每个测试清除 cookie

java - 无法单击 Selenium Webdriver 上的按钮(元素)

java - 将 WebElement 作为参数传递给隐式等待方法