有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java检查是否选中复选框,是否使用Selenium

下面的代码片段表示一个checkbox,我想检查是否使用Selenium检查它

for (int j = 2; j < 5; j++)
{
    List<WebElement> td1 = row1.findElements(By.tagName("td"));
    WebElement check = td1.get(j);

    if (check.isEnabled())
    {
        if (!check.isSelected())
        {
            List<WebElement> checkBox = ele
                    .findElements(By.xpath("//input[contains(@ng-change,'vm.updateInvoicingMethodMailByGroup(item)')]"));
            WebElement elem3 = checkBox.get(count);
            elem3.click();
            count++;
            break;
        }
    }
}

当我检查这个时,类从

class="ng-valid ng-dirty ng-valid-parse ng-empty ng-touched"

class="ng-valid ng-dirty ng-valid-parse ng-not-empty ng-touched"

HTML

<input type="checkbox" name="invoicingByMailFlag" ng-model="item.invoicingByMailFlag"
    ng-change="vm.updateInvoicingMethodMailByGroup(item)" class="ng-valid ng-dirty
    ng-valid-parse ng-empty ng-touched">`

共 (2) 个答案

  1. # 1 楼答案

    如果您需要选中未选中的复选框,请尝试以下代码:

    List <WebElement> allcheckbox =  driver.findElements(By.xpath("//input[@type='checkbox']"));
    
    for(WebElement element : allcheckbox)
    {
        if(!(element.isSelected()))
        {
            element.click();
        }
    }
    
  2. # 2 楼答案

    您可以检查它是否具有class属性ng-empty

    List<WebElement> checkBoxes = ele.findElements(By.xpath("//input[contains(@ng-change,'vm.u‌​pdateInvoicingMethod‌​MailByGroup(item)')]‌​"));
    WebElement checkBox = checkBoxes.get(count);
    if (checkBox.getAttribute("class").contains("ng-empty")) {
        // checkbox not checked
    }