Список выбора Ajax не работает, когда IE запускается из WatiN - PullRequest
0 голосов
/ 29 июня 2011

Эта проблема, которая у меня возникла, даже не связана с синхронизацией, где я ожидаю завершения запроса Ajax. У меня проблема, когда пост Ajax даже не запускается, когда IE запускается WaitN. Вот мой сценарий:

$(document).ready(function () {
    $("form select").change(function () {
        $(this).parents().filter("form").trigger("submit");
    });

    $("form#theForm").submit(function (event) {
        event.preventDefault();
        hijack(this, UpdateList, "html");
    });

    function hijack(form, callback, format) {
        $.ajax({
            url: form.action,
            type: form.method,
            dataType: format,
            data: $(form).serialize(),
            success: callback
        });
    }

    function UpdateList(result) {
        $("#results").html(result);
    }

Вот HTML:

 <% using (Html.BeginForm("ControllerName", "ActionName", FormMethod.Post, new { id="theForm" })) { %>
    <table width="100%">
        <tr>
            <td align="left">
               &nbsp;
            </td>
            <td align="right">
                Fiscal Year & Period: <%= Html.DropDownList("period", Model.FiscalPeriodSelectList)%>
            </td>
        </tr>
    </table>
    <% } %>

    <div id="results">
        <% Html.RenderPartial("Setup", Model.ViewModel); %>
    </div>

Абсолютно ничего не происходит, когда в списке выбора выбрано другое значение. Я даже оставил браузер открытым после выполнения теста, чтобы я мог вручную изменить список выбора. Тем не менее - ничего не происходит. Однако, когда я запускаю приложение через VS, сообщение ajax в списке выбора работает отлично. Есть что-то, что я не настраиваю должным образом?

Редактировать: может быть важно отметить, что я вхожу в систему с использованием обычной аутентификации, как при ручном запуске приложения mvc, так и при его запуске NUnit. После дальнейшей проверки я понял, что все, кроме обратного вызова AJAX, выполняется, и когда я фиксирую ошибку AJAX в «предупреждении», мне показывается «Несанкционированный». Я все еще не уверен, как я могу исправить свою проблему и почему я получаю Unauthorized, когда я запускаю свои тесты WatiN из NUnit, но я не получаю его, когда использую приложение mvc вручную.

1 Ответ

0 голосов
/ 30 июня 2011

Я заметил, что у меня обычно возникает ошибка JavaScript на странице при запуске тестов в Watin Мне сказали, что это потому, что мы не ждем, пока страница загрузит файл JS.

Вы видите ошибку JS в строке состояния вашего браузера? Если это так, вы можете отложить взаимодействие с браузером, которое вы пытаетесь выполнить. Таким образом, мы разрешаем загрузку файла JS и, надеюсь, ваша проблема должна быть решена. Дайте нам знать, как оно идет. Приветствия.

...