【问题标题】:Coded UI Search Not Allowing DataService Ajax Request编码 UI 搜索不允许 DataService Ajax 请求
【发布时间】:2014-10-28 12:45:23
【问题描述】:

我正在为我的单页应用程序创建编码的 UI 测试。该应用程序使用 durandal.js 作为 SPA 框架。其他一些库包括 Knockout.js、TypeScript 和 Kendo-UI。每当 Coded UI 测试单击链接或按钮时,页面就会挂起。该链接似乎被测试点击了。但是,在单击事件之后,加载面板会立即出现(微调器)并且永远不会消失。

似乎每当我执行 codedUI 搜索(参见下面的代码)时,它都会阻止我的数据服务调用。搜索是否有可能阻塞线程?使用开发人员工具栏,我可以看到 $.post(url, request) 正在被调用,但我从未得到回复。这会导致我的加载面板(微调器)保持可见。

if (MyHyperlink.WaitForControlExist(7000)) { 
    Mouse.Click(MyHyperlink);
}

上面的代码点击了一个显示网格的超链接。页面出现,但网格永远不会出现,因为 ajax 请求永远不会返回。任何建议将不胜感激。

** 问题仅在使用 IE 时存在。谷歌浏览器工作正常(需要 Selenium 组件)

【问题讨论】:

  • 我猜你是在使用 selenium 进行自动化测试,你试过 phantomjs 只是为了验证它与浏览器无关?
  • @zewa666 感谢您的评论。我没有使用 Selenium,因为我认为在使用 IE10 时不需要这样做。这是一个正确的假设吗?我对 Phantom.js 不熟悉,并将对其进行研究。谢谢!
  • 那么您使用的 MS 默认测试自动化库是什么?没有这方面的经验,但我已经成功地用 selenium 和 phantomjs 进行了测试。后来的一个是用于快速 e2e 测试的无头浏览器。 Google for tuts。

标签: mvvm knockout.js durandal coded-ui-tests


【解决方案1】:

尝试将此添加到您的 app.config

也许有人可以更好地解释这一点,但基本上发生的事情是这样的:

CodedUI 正在打开和阻止 IE 用于 Ajax 请求的同一端口。设置WebWaitForReadyLevel = 3 可以防止这种情况发生。

【讨论】:

    猜你喜欢
    • 2017-03-15
    • 1970-01-01
    • 2018-09-11
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2017-12-09
    • 1970-01-01
    相关资源
    最近更新 更多