4

ページソースを取得するために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
4

2 に答える 2

1

UnexpectedPageのJavaDoc内で、彼らは次のように述べています。

サーバーから予期しないコンテンツタイプが返されるたびに返される汎用ページ。

次のコンテンツタイプを確認することをお勧めしますwebClient.getPage("url");

于 2012-06-25T14:12:14.337 に答える
0

使用する代わりに

HtmlPage downloadPage = null;       
downloadPage=(HtmlPage)webClient.getPage("url");

使用する

UnexpectedPage downloadPage = null;       
downloadPage=(HtmlPage)webClient.getPage("url");

それは私とうまくいきました。

于 2013-06-23T10:48:36.427 に答える