我正在尝试登录我的大学网站,但我遇到了html单元的问题。
我的代码:
WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_8);
webClient.setJavaScriptEnabled(false);
webClient.setThrowExceptionOnScriptError(false);
HtmlPage currentPage = webClient.getPage("http://www.oid.hacettepe.edu.tr/cgi-bin/menuindex.cgi");
HtmlForm form = currentPage.getForms().get(0); // forms correct
System.out.println(form.asXml());
HtmlTextInput name = form.getInputByName("login");
HtmlPasswordInput pass = form.getInputByName("passwd");
name.setValueAttribute("*****");
pass.setValueAttribute("*****");
HtmlSubmitInput button = form.getInputByName("SubmitName");
HtmlPage page2 = button.click();
System.out.println(page2.asText());
结果:
Exception in thread "main" com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[input] attributeName=[name] attributeValue=[login]
at com.gargoylesoftware.htmlunit.html.HtmlForm.getInputByName(HtmlForm.java:460)
at hacettepe.Hacettepe.main(Hacettepe.java:34)
Java Result: 1
你能解释一下我对这个问题的看法有什么问题吗?非常感谢。
答案 0 :(得分:0)
因为页面上找不到元素'login'。
答案 1 :(得分:0)
就像user2115021建议的那样,作为第一步,验证您要查找的元素实际上位于您请求的第一页中。特别是,请确保“login”,“psswd”和“SubmitName”是“currentPage”中的实际值。
如果这不起作用,请尝试更改获取表单名称的方式。我用过
final HtmlForm form = page.getFormByName("loginform");