2011-07-03 2 views
0

내 시나리오는 다음과 같습니다. Wicket 응용 프로그램을 테스트 중이며 XPath로 구성 요소를 찾으려면 XML로 페이지 텍스트 wicktetTester.getServletResponse.getDocument을 파싱합니다. 이것은 꽤 비싸므로 페이지가 바뀔 때까지 dom4j.Document을 유지하고 싶습니다. 그런 다음 다시 작성하십시오.Wicket Page 객체에서 변경되었음을 어떻게 알 수 있습니까?

현재 페이지를 알고 있습니다. 예를 들어 양식을 제출하고 같은 페이지에 머무르면 Page 개체가 같은 개체입니다. 페이지의 어떤 속성을 다시 쿼리하여 DOM을 다시 작성해야하는지 쿼리 할 수 ​​있습니까?

public Document getDocument() { 
    if (tester.getLastRenderedPage() != lastPageParsed && SOME_OTHER_TEST) { 
     cachedDocument = parse(tester.getServletResponse().getDocument(); 
     lastPageParsed = tester.getLastRenderedPage(); 
    } 
    return cachedDocument; 
} 
+0

그러나 예를 들어 양식을 제출하고 동일한 페이지에 머문다면 Page 객체는 변경되지 않습니다. 일반적으로 이는 사실이 아닙니다. 양식을 제출하면 현재 페이지가 다시 렌더링됩니다. 결과가 동일한 HTML 출력인지 여부는 페이지에 따라 다릅니다. – biziclop

+0

변경 사항 정의 - 개체 ID 또는 상태에 따라 - 질문을 명확히했습니다. '페이지'는 같은 대상으로 남아 있지만 상태는 변경됩니다. 다시 렌더링하지 않고 상태가 다른지 알고 싶습니다. –

답변

0

TagTester를 참조하십시오. XPath보다 나은 서비스를 제공 할 것입니다.

+0

나는 그랬 으면 좋겠지 만 나는 어떻게 볼 수는 없다. 문제가되는 태그를 찾는 것이 아니라 태그를 찾는 것입니다. 내 GUI에는 열이 여러 개의 확인란을 포함 할 수있는 테이블이있는 양식이 있습니다. order-panel : form : table : body : rows : 1 : cells : 18 : cell : listview : 0 : site-checkbox : checkbox'. XPath를 사용하면 예를 들어'// (input [@ type = "checkbox"]) [3]'을 사용하여 페이지의 세 번째 체크 상자를 얻을 수 있습니다. –

관련 문제