2012-04-22 3 views
2

私はHTMLの助けを借りてフォーラムPhpBBをテストしています。私はPhpBBフォーラムのトピックの1つにメッセージを追加したいと思います。テキストエリアにメッセージを入力して[送信]ボタンをクリックしますが、新しいページにはメッセージがありません。問題であると想定されるのは?PhpBBフォーラムのテスト

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"); 
} 

ありがとうございます!

答えて

0

これを回避する方法の1つは、カスタムHTTP投稿要求を作成することです。

トラフィックをキャプチャしてHTMLUnitで複製するには、FIddlerを使用します。次のように表示されます。

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; 
}