Я пытаюсь запустить проект Coded-UI test в приложении asp.net MVC4. Приложение содержит различные связанные с ajax звонки. Когда я тестирую его вручную, он отлично работает, но когда я тестирую его, используя проект тестирования с кодированным ui, он прерывается, потому что в вызовах ajax функция обратного вызова не вызывается. Может ли кто-нибудь сказать мне, что мне здесь не хватает? Спасибо заранее.
Успех JQuery AJAX не запускается с помощью проекта тестирования кодированного пользовательского интерфейса
Ответ 1
Что происходит неправильно
Microsoft Coded UI браузер вводит javascript для подгонки объекта XMLHttpRequest для отслеживания. Любые вызовы ajax на странице будут использовать эту прокладку вместо реального XMLHttpRequest. Прокладка предполагает, что ваш ответ завершения завершения привязан к свойству XMLHttpRequest onreadystatechange, но jQuery 2.0 использует новые события onload и onerror, поэтому обратный вызов никогда не вызывается с помощью прокладки.
Обход
Работа над проектом заключается в добавлении следующего файла в файл App.config для тестового проекта:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="WebWaitForReadyLevel" value="3"/>
</appSettings>
</configuration>
Настройка WebWaitForReadyLevel на 3 останавливает кодированный пользовательский интерфейс WebBrowser от ввода javascript для отслеживания вызовов и таймеров ajax. jQuery получит реальный XMLHttpRequest, и ваши обратные вызовы ajax будут работать снова.