htmlunit:复选框未被选中

htmlunit : checkbox not getting checked

我正在使用 HtmlUnit 在页面中设置复选框。 Html 复选框的代码是:

<input id="Checkbox" type="checkbox"  name="Checkbox" style="color:Black;"/>

我的 java 设置复选框的代码是:

HtmlCheckBoxInput checkBox = page.getHtmlElementById("Checkbox");
checkBox.setChecked(true);
        
FileUtils.writeStringToFile(new File("src/test/page-dumps/page-3.html"),page.asXml(),"UTF-8");

当我在浏览器中打开 page-3.html 时,未选中 ckeckbox。为什么没有检查?

您可以尝试将 checked 属性添加到 <input> 元素吗?

好吧,它没有被选中,因为真正的浏览器不添加属性。

使用真实浏览器测试以下内容:

<html><head>
<script>
  function test() {
    var e = document.getElementById('myid');
    e.checked = true;
    alert(e.outerHTML);
  }
</script>
</head><body onload="test()">
  <input type=checkbox id=myid>
</body></html>

的警报
<input type="checkbox" id="myid">

没有任何 checked 属性。

您应该改用:

checkBox.setAttribute("checked", "checked");