如何从Wicket页面对象判断它已更改?

如何从Wicket页面对象判断它已更改?,wicket,wicket-tester,Wicket,Wicket Tester,这是我的设想。我正在测试一个Wicket应用程序,并将页面文本wickettetester.getServletResponse.getDocument解析为XML,以便查找带有XPath的组件。这相当昂贵,因此我想保留dom4j.Document,直到页面更改,然后重新构建它 我知道当前页面-wicketTester.getLastRenderPage,但如果我提交表单并停留在同一页面上,则page对象就是同一个对象。我可以查询页面的哪些属性以知道它已被重新呈现,并且需要重建DOM publi

这是我的设想。我正在测试一个Wicket应用程序,并将页面文本
wickettetester.getServletResponse.getDocument
解析为XML,以便查找带有XPath的组件。这相当昂贵,因此我想保留
dom4j.Document
,直到页面更改,然后重新构建它

我知道当前页面-
wicketTester.getLastRenderPage
,但如果我提交表单并停留在同一页面上,则
page
对象就是同一个对象。我可以查询页面的哪些属性以知道它已被重新呈现,并且需要重建DOM

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

最好看看TagTester。我想它比XPath更适合您。

但是如果我提交一个表单并停留在同一个页面上,页面对象通常不会改变,这是不正确的。提交表单时,将重新呈现当前页面。结果是否是相同的HTML输出取决于您的页面。取决于您对更改的定义-对象标识或状态-我已经澄清了问题-
页面
仍然是相同的对象,但其状态会更改。我想知道在不重新渲染的情况下状态是否不同。我希望是这样,但我看不出如何。问题不在于检查标签,而在于找到标签。我的GUI有一个表格,其中一列可能包含多个复选框。查找组件的id路径变得疯狂-
顺序面板:表单:表格:正文:行:1:单元格:18:单元格:列表视图:0:站点复选框:复选框
。对于XPath,我可以使用例如
/(input[@type=“checkbox”])[3]
来获取页面上的第三个复选框。