2011-07-03 24 views
0

這是我的場景。我正在測試Wicket應用程序,並且將頁面文本wicktetTester.getServletResponse.getDocument解析爲XML,以便使用XPath查找組件。這是相當昂貴的,所以我想保留dom4j.Document,直到頁面改變,然後重新構建它。如何從Wicket Page對象中發現它已更改?

我知道當前頁面 - wicketTester.getLastRenderedPage但如果我例如提交表單並保持在同一頁面上,則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

取決於你對變化的定義 - 對象身份或狀態 - 我已經澄清了這個問題 - 「頁面」仍然是同一個對象,但它的狀態發生了變化。我想知道如果沒有重新渲染,狀態是不同的。 –

回答

0

更好的看TagTester。我想它會比XPath更好地爲您服務。

+0

我希望這樣做,但我看不出如何。它不檢查標籤是否是問題 - 找到它們。我的GUI有一個表格,其中一列可能包含多個複選框。查找組件的id路徑變得瘋狂 - 'order-panel:form:table:body:rows:1:cells:18:cell:listview:0:site-checkbox:checkbox'。對於XPath,我可以使用例如'//(輸入[@ type =「checkbox」])[3]'來獲取頁面上的第三個複選框。 –

相關問題