Forms 如何访问既没有名称也没有id的表单元素?

Forms 如何访问既没有名称也没有id的表单元素?,forms,htmlunit,Forms,Htmlunit,如何访问既没有名称也没有id的表单元素? 我没有找到任何有用的HtmlForm类方法 您可以使用getElementsByTagName,但是您应该知道html的结构 例如: HtmlPage page = webClient.getPage("http://www.tizag.com/phpT/examples/formex.php"); HtmlElement form = (HtmlElement) page.getElementsByTagName("form").get(0); Sys

如何访问既没有名称也没有id的表单元素? 我没有找到任何有用的HtmlForm类方法

您可以使用getElementsByTagName,但是您应该知道html的结构

例如:

HtmlPage page = webClient.getPage("http://www.tizag.com/phpT/examples/formex.php");
HtmlElement form = (HtmlElement) page.getElementsByTagName("form").get(0);
System.out.println(form.asText());

上面的代码允许您访问第一个表单元素,并将其内容作为文本打印到控制台。

是的,但我使用HtmlUnit和Java。getElementByTag方法对输入和表单标记无效。DomNodeList为空。下次请提及您在问题中使用的内容,而不仅仅是在标记中。因此,首先使用getContentAsString检查页面内容,看看它是否实际包含表单。您正在使用page.getWebClient.setJavaScriptEnabledtrue吗?如果您已经检查了所有这些,但仍然无法访问元素,请尝试使用executeJavaScript运行javascript代码,并阅读有关如何返回结果的API。我编辑了我的答案,并添加了一个示例,该示例已在HtmlUnit中测试并成功运行。