HTMLUnit 认为 Submit Button 是一个文本输入

HTMLUnit thinks Submit Button is a text input

我正在尝试使用 HtmlUnit 处理 Java 中的表单。它工作正常,直到它试图找到并单击提交按钮。

这是表格的样子,

<form method="get" action="result.php">
    <p>Text: <input type="text" name="text"/></p>
    <p>Agree: <input type="checkbox" name="doYouAgree" value="agree" /></p>
    <p><input type="submit" name="Submit" value="Submit"/></p>
</form>

我四处搜索并尝试了许多不同的方法来检索元素,但它始终returns HtmlTextInput 而不是 HtmlSubmitInput。

form.getInputByName("Submit").click();

我也试过用每种类型的输入处理一个表单,不管是什么类型,它总是 returns HtmlTextInput。

有人见过这个问题或知道如何解决吗?我担心这就是 HtmlUnit 不提交任何表单的原因。

您可以提交带有基础对象的表单,如 DomElement。

DomElement button = page.getFirstByXPath("//input[@name='Submit']");
HtmlPage new_page = button.click(); // or you can use the old page

应该可以。