使用Coded UI测试项目不会触发Jquery AJAX成功

我试图在asp.net MVC4应用程序上运行Coded-UI测试项目。 该应用程序包含涉及的各种ajax调用。 当我手动测试它,它工作正常,但当我使用编码ui测试项目测试它时,它会中断,因为在ajax调用中,回调函数不会被调用。 谁能告诉我在这里我缺少什么? 提前致谢。

出了什么问题

Microsoft的Coded UI浏览器注入了javascript来填充XMLHttpRequest对象以进行跟踪。 页面中的任何ajax调用都将使用此填充程序而不是真正的XMLHttpRequest。 垫片假定您的完成回调附加到XMLHttpRequest的onreadystatechange属性,但jQuery 2.0使用新的onload和onerror事件,因此垫片永远不会调用回调。

解决方法

解决方法是将以下内容添加到测试项目的App.config文件中:

      

将WebWaitForReadyLevel设置为3可阻止Coded UI WebBrowser注入javascript以跟踪ajax调用和计时器。 jQuery将获得一个真正的XMLHttpRequest,你的ajax回调将再次运行。