我一直在使用wicketTester.getServetResponse.getDocument
获取当前页面的文本进行测试,结果发现在ajax请求之后它被设置为ajax响应,而不是整个页面。
有没有办法获得整个呈现页面的表示,因为浏览器会在 ajax 操作之后看到它?
我一直在使用wicketTester.getServetResponse.getDocument
获取当前页面的文本进行测试,结果发现在ajax请求之后它被设置为ajax响应,而不是整个页面。
有没有办法获得整个呈现页面的表示,因为浏览器会在 ajax 操作之后看到它?
使用 WicketTester,您可以模拟 Ajax 调用并查看您的应用程序是否发送了正确的 Ajax 响应。但它并没有真正使用ajax。
所以我不相信有办法从 WicketTester 获得它。
如果您确实需要测试应用程序一直到 UI,包括对渲染的 Ajax/javascript 效果,您可能需要使用Selenium之类的东西来进行这部分测试。
考虑 Wicket 方式,我希望以下方法应该有效:
这个想法是:你开始一个页面进行测试,第一个响应是完整的页面响应,然后你做一些 Ajax 调用来改变一些模型,然后你启动最后一个呈现的页面作为一个实例 - 这样它就会呈现页面来自 Ajax 调用的更新模型。
问题是您可以将任何 Javascript 放在对 Ajax 调用的响应中。但是,如果您不想处理这个问题,您可以保存原始的整页 DOM,遍历 Ajax 响应中的对象,在完整 DOM 中通过 id 找到它们并用新版本替换它们。
这会有多大用处,我不知道,我的猜测不会很有用。所以我可能也会选择 Selenium。