当前使用HtmlUnit。HtmlUnit,试图获取2个表单,获得第二个表单的异常
获取第一个登录页面没有问题,成功登录,下一页,点击链接以获取“MyDetails”页面。
获得“MyDetails”页面后,我想获得与获取第一个登录表单相同的方式。
为什么我需要得到的形式是,我想改变密码,并在字段中的形式。
当我尝试获得第二个形式,它给了我的异常,如下所示:
com.gargoylesoftware.htmlunit.ElementNotFoundException:的ElementName = [表]的attributeName = [名]的AttributeValue = [窗口2]
HtmlForm form2 = page3.getFormByName("form2");
注:
在这行代码给出异常的第一种形式的名称是“form1的” &第二形式的名称是“窗口2”。
这是HtmlUnit的问题吗?
代码:
所有的try {
WebClient webclient = new WebClient(BrowserVersion.FIREFOX_3_6);
HtmlPage page1 = webclient.getPage("http://www.highveld.mobi/pages/clubvip/login.aspx");
HtmlForm form = page1.getFormByName("form1");
HtmlSubmitInput buttonLogin = form.getInputByName("cmdLogin");
HtmlTextInput cellLogin = form.getInputByName("txtCellNumber");
HtmlPasswordInput passLogin = form.getInputByName("txtLoginPassword");
cellLogin.setValueAttribute(change);
passLogin.setValueAttribute(oldPass);
HtmlPage page2 = buttonLogin.click();
HtmlAnchor link = page2.getAnchorByHref("updateprofile.aspx");
HtmlPage page3 = link.click();
System.out.println(page3.getUrl());
HtmlForm form2 = page3.getFormByName("form2");
HtmlPasswordInput pass = form2.getInputByName("txtPassword");
HtmlPasswordInput passConfirm = form2.getInputByName("txtConfirmPassword");
HtmlSubmitInput button = form2.getInputByName("cmdUpdate");
pass.setValueAttribute(newPass);
passConfirm.setValueAttribute(newPass);
HtmlPage page4 = button.click();
}
LOL OMS! 您尝试查看的网页存在错误,请检查您提交的信息或稍后重试。 手机号码无效。怪不得!当我将这些单元格号码添加到数据库时,0 infront会被截断!谢谢! – Foxticity