В настоящее время используется HtmlUnit.
Получение первой страницы входа не представляет проблем, успешный вход в систему, переход на следующую страницу, «нажатие» на ссылку, чтобы перейти на страницу «MyDetails».
После получения страницы «MyDetails» я хочу получить то же самое, что и я, получая первую форму входа.
Почему мне нужно получить форму, я хочу сменить пароль, а поля находятся в форме.
Когда я пытаюсь получить вторую форму, я получаю следующее исключение:
com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName = [форма] attributeName = [имя] attributeValue = [форма2]
Дает исключение в этой строке кода:
HtmlForm form2 = page3.getFormByName("form2");
Примечание: первое имя формы - "form1", а второе имя формы - "form2".
Это проблема с 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();
}