我是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
在这个网站上做这些事是合法的。
答案 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.调试每行代码
似乎我们无法做很多事情,因为您无法更改该页面。