2012-04-22 51 views
2

我在HTML單元的幫助下測試論壇PhpBB。我想在PhpBB論壇的主題之一添加消息。我在textarea中輸入消息並單擊提交按鈕,但新頁面沒有我的消息。什麼似乎是問題?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

解決這個問題的一個方法是構造一個自定義http post請求。

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