2

HTML ユニットを使用してフォーラム PhpBB をテストしています。PhpBB フォーラムのトピックの 1 つにメッセージを追加したいと考えています。テキストエリアにメッセージを入力して送信ボタンをクリックしましたが、新しいページにメッセージがありません。問題に見えるのは?

final ArrayList<HtmlForm> formList=(ArrayList<HtmlForm>) page.getByXPath("//form[@id='postform']");  
final HtmlTextArea myMessage=formList.get(0).getTextAreaByName("message");
myMessage.type("text");
final HtmlSubmitInput submit_post = formList.get(0).getInputByName("post");

page=submit_post.click();

if (page.asText().contains("text")) {
  System.out.println("right");
}

ご協力ありがとう御座います!

4

1 に答える 1

0

これを回避する 1 つの方法は、カスタムの http ポスト リクエストを作成することです。

Fiddler を使用してトラフィックをキャプチャし、HTMLUnit で複製します。以下のようになります

public Page postMessage() throws Exception
{
    URL url = new URL("YOURURL");
    WebRequest requestSettings = new WebRequest(url, HttpMethod.POST);

    requestSettings.setAdditionalHeader("Accept", "*/*");
    requestSettings.setAdditionalHeader("Content-Type", "application/x-www-form-urlencoded");
    requestSettings.setAdditionalHeader("Referer", "REFERER");
    requestSettings.setAdditionalHeader("Accept-Language", "en-US,en;q=0.8");
    requestSettings.setAdditionalHeader("Accept-Encoding", "gzip,deflate,sdch");

    requestSettings
            .setRequestBody("YOURPOSTREQUEST");

    Page page = webClient.getPage(requestSettings);

    return page;
}
于 2014-01-02T21:42:46.693 に答える