Успех Jquery AJAX не запускается с тестовым проектом Coded UI

Я пытаюсь запустить тестовый проект Coded-UI в приложении asp.net MVC4. Приложение содержит различные вызовы ajax. Когда я тестирую его вручную, он работает нормально, но когда я тестирую его с помощью тестового проекта coded-ui, он ломается, потому что при вызовах ajax функция обратного вызова не вызывается. Может ли кто-нибудь сказать мне, что мне здесь не хватает.? Заранее спасибо.


person user2617088    schedule 25.07.2013    source источник
comment
Добро пожаловать в StackOverflow! Будет полезнее, если вы опубликуете соответствующий код вместе с объяснением, что и как точно ломается.   -  person Arman H    schedule 25.07.2013
comment
Я могу добавить, что любое действие пользователя на странице прерывает успех $.ajax, и это только на jQuery 2.0.   -  person Denis Agarev    schedule 23.08.2013


Ответы (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 снова заработают.

person Ross McNab    schedule 27.01.2014
comment
Спасатель жизни. Я нахожу минимальную информацию об этом в Интернете - есть ли у вас какие-либо ссылки на проблему или решение? - person Andyrooger; 14.12.2015