3

我一直在使用wicketTester.getServetResponse.getDocument获取当前页面的文本进行测试,结果发现在ajax请求之后它被设置为ajax响应,而不是整个页面。

有没有办法获得整个呈现页面的表示,因为浏览器会在 ajax 操作之后看到它?

4

3 回答 3

2

使用 WicketTester,您可以模拟 Ajax 调用并查看您的应用程序是否发送了正确的 Ajax 响应。但它并没有真正使用ajax。

所以我不相信有办法从 WicketTester 获得它。

如果您确实需要测试应用程序一直到 UI,包括对渲染的 Ajax/javascript 效果,您可能需要使用Selenium之类的东西来进行这部分测试。

于 2011-07-04T18:05:21.163 回答
2

考虑 Wicket 方式,我希望以下方法应该有效:

  1. #startPage(YourPage.class)
  2. 做一些 Ajax 调用
  3. #startPage(wicketTester.getLastRenderedPage())
  4. wicketTester.getLastRenderedPageAsString()

这个想法是:你开始一个页面进行测试,第一个响应是完整的页面响应,然后你做一些 Ajax 调用来改变一些模型,然后你启动最后一个呈现的页面作为一个实例 - 这样它就会呈现页面来自 Ajax 调用的更新模型。

于 2011-07-04T20:40:05.410 回答
1

问题是您可以将任何 Javascript 放在对 Ajax 调用的响应中。但是,如果您不想处理这个问题,您可以保存原始的整页 DOM,遍历 Ajax 响应中的对象,在完整 DOM 中通过 id 找到它们并用新版本替换它们。

这会有多大用处,我不知道,我的猜测不会很有用。所以我可能也会选择 Selenium。

于 2011-07-04T20:54:24.677 回答