找不到HtmlUnit getform()表单

时间:2016-01-07 04:46:02

标签: java html htmlunit

我是HtmlUnit的新手..我想登录https://trash-mail.com/posteingang/

我的代码:

public static void main(String[] args) throws FailingHttpStatusCodeException, MalformedURLException, IOException {

        WebClient webClient = new WebClient(BrowserVersion.CHROME);

        HtmlPage page1 = webClient.getPage("https://www.trash-mail.com/posteingang/");

        HtmlForm form = page1.getFormByName("inbox-form");

我收到以下错误:

  

runtimeError:message = [指定了无效或非法选择器(选择器:'选择选项:已选择'错误:无效选择器:选择选项:已选中)。] sourceName = [https://www.trash-mail.com/js/jquery-1.9.1.min.js.pagespeed.ce.OXdUuknp4M.js]行= [4] lineSource = [null] lineOffset = [0]   线程" main"中的例外情况com.gargoylesoftware.htmlunit.ElementNotFoundException:elementName = [form] attributeName = [name] attributeValue = [inbox-form]       在com.gargoylesoftware.htmlunit.html.HtmlPage.getFormByName(HtmlPage.java:647)

你有什么想法可以发挥作用吗?

此致 MaddinCoy

在这个网站上做这些事是合法的。

1 个答案:

答案 0 :(得分:0)

在该HTML页面上,我看不到任何具有该名称的表单 - inbox-form inbox-form 是表单的id而不是名称。

<form id="inbox-form" action="#" method="post" enctype="multipart/form-data" class="form-horizontal" autocomplete="off">

name属性添加到表单或使用getElementById方法之一。

此页面只有一个表单,因此您也可以尝试使用此语法HtmlForm form = page.getForms().get(0);

编辑 - 我尝试运行您的代码,问题发生在HtmlPage page = webClient.getPage("https://www.trash-mail.com/posteingang/");

错误讯息 - SEVERE: runtimeError: message=[An invalid or illegal selector was specified (selector: 'select option:selected' error: Invalid selector: select option:selected).] sourceName=[https://www.trash-mail.com/js/jquery-1.9.1.min.js.pagespeed.ce.OXdUuknp4M.js] line=[4] lineSource=[null] lineOffset=[0]

这似乎是Jquery支持HtmlUnit的问题或该脚本或用法中的一些错误,htmlUnitbugs

我的建议 - 1.不要从main方法中抛出异常,尝试处理这些异常2.调试每行代码

似乎我们无法做很多事情,因为您无法更改该页面。