當前使用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