Я пытаюсь запустить тестовый проект Coded-UI в приложении asp.net MVC4. Приложение содержит различные вызовы ajax. Когда я тестирую его вручную, он работает нормально, но когда я тестирую его с помощью тестового проекта coded-ui, он ломается, потому что при вызовах ajax функция обратного вызова не вызывается. Может ли кто-нибудь сказать мне, что мне здесь не хватает.? Заранее спасибо.
Успех Jquery AJAX не запускается с тестовым проектом Coded UI
Ответы (1)
Что происходит
Браузер Microsoft Coded UI внедряет javascript, чтобы скрыть объект XMLHttpRequest для отслеживания. Любые вызовы ajax на странице будут использовать эту оболочку вместо настоящего XMLHttpRequest. Оболочка предполагает, что ваш обратный вызов завершения присоединен к свойству onreadystatechange XMLHttpRequest, но 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 запрещает веб-браузеру Coded UI внедрять javascript для отслеживания вызовов и таймеров ajax. jQuery получит настоящий XMLHttpRequest, и ваши обратные вызовы ajax снова заработают.