代码之家  ›  专栏  ›  技术社区  ›  Jonathan

是否选中复选框的状态?

  •  1
  • Jonathan  · 技术社区  · 7 年前

    我试图验证复选框的状态是否选中,如果状态为false,请单击“如果不执行其他操作”。我应该使用。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在其下方显示一条红线。

    3 回复  |  直到 7 年前
        1
  •  2
  •   arthur    7 年前

    执行以下操作:

    WebElement checkbox = driver.findElement(By.name("companyOptionsForm:mandateVerificationTotals"));
    
    if (checkbox.isSelected()) {
      //do something
     } else  {
      //do something else
     }
    
        2
  •  2
  •   FredK    7 年前

    AWT复选框有一个名为getState()的方法,但没有一个名为isSelected()的方法。

    Swing JCheckBox有一个名为isSelected()的方法,但没有一个名为getState()的方法。

    正如@亚瑟所示,不要将布尔值与真或假进行比较;仅使用 if (booleanVariable) if (!booleanVariable)

        3
  •  1
  •   Fenio    7 年前

    您还可以使用 javascript 验证是否选中复选框

    public boolean isChecked(WebElement element) {
        return (boolean) ((JavascriptExecutor) driver).executeScript("return arguments[0].checked", element);
    }