2012-04-22 6 views
2

나는 HTML 단위의 도움으로 포럼 PhpBB를 테스트하고있다. PhpBB 포럼 주제 중 하나에 메시지를 추가하고 싶습니다. 텍스트 영역에 메시지를 입력하고 제출 버튼을 클릭하지만 새 페이지에 내 메시지가 없습니다. 무슨 문제가있는 것 같습니까?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 게시 요청을 작성하는 것입니다.

트래픽을 캡처하고 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; 
}