我正在使用Web客户端获取页面源。我已成功登录。之后,我使用相同的对象来获取使用不同URL的页面源,但它显示的异常如下:
java.lang.ClassCastException: com.gargoylesoftware.htmlunit.UnexpectedPage cannot be cast to com.gargoylesoftware.htmlunit.html.HtmlPage
这是我正在使用的代码。
forms = (List<HtmlForm>) firstPage.getForms();
form = firstPage.getFormByName("");
HtmlTextInput usernameInput = form.getInputByName("email");
HtmlPasswordInput passInput = form.getInputByName("password");
HtmlHiddenInput redirectInput = form.getInputByName("redirect");
HtmlHiddenInput submitInput = form.getInputByName("form_submit");
usernameInput.setValueAttribute(username);
passInput.setValueAttribute(password);
//Create Submit Button
HtmlElement button = firstPage.createElement("button");
button.setAttribute("type", "submit");
button.setAttribute("name", "submit");
form.appendChild(button);
System.out.println(form.asXml());
HtmlPage pageAfterLogin = button.click();
String sourc = pageAfterLogin.asXml();
System.out.println(pageAfterLogin.asXml());
/////////////////////////////////////////////////////////////////////////
以上代码成功运行并登录 之后我使用此代码
HtmlPage downloadPage = null;
downloadPage=(HtmlPage)webClient.getPage("url");
但我得到了例外
java.lang.ClassCastException: com.gargoylesoftware.htmlunit.UnexpectedPage cannot be cast to com.gargoylesoftware.htmlunit.html.HtmlPage
答案 0 :(得分:1)
答案 1 :(得分:0)
而不是使用
HtmlPage downloadPage = null;
downloadPage=(HtmlPage)webClient.getPage("url");
使用
UnexpectedPage downloadPage = null;
downloadPage=(HtmlPage)webClient.getPage("url");
它对我很好。