【问题标题】:Can I get the source of the current Wicket Page?我可以获得当前 Wicket Page 的来源吗?
【发布时间】:2011-09-28 07:31:22
【问题描述】:

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

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

【问题讨论】:

标签: wicket wicket-tester


【解决方案1】:

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

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

【讨论】:

  • 我对 WicketTester 非常满意,除了查找组件有多难。也许我会在我的路径上使用正则表达式匹配...
【解决方案2】:

以 Wicket 方式思考我希望以下方法能够奏效:

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

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

【讨论】:

  • getLastRenderedPageAsString 在哪里 getServletResponse.getDocument?所以这是执行操作,然后刷新现在修改的页面。我会试一试,谢谢。
【解决方案3】:

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

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

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

【讨论】:

  • 我不是在使用 Ajax,而是在使用 Ajax 显示面板之后获取页面源。鉴于页面状态保存在服务器上,我认为这对应于刷新整个页面时将提供的服务?
  • 页面状态不会作为整个渲染页面保存在html中,我认为WicketTester没有提供在ajax响应后获取html当前状态的方法。
  • 我担心是这样的。也许我将不得不模拟获取当前 URL。
猜你喜欢
  • 1970-01-01
  • 2012-09-18
  • 2017-07-12
  • 2012-08-01
  • 2012-06-04
  • 1970-01-01
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多