2015-09-25 2 views
3

У меня есть страница на моем сайте, которая делает запрос на сервер, а затем использует результат для заполнения таблицы.Подождите ответа сервера (и проверьте значение) в тесте Protractor

Как я могу написать тест e2e для этого? У меня возникли проблемы с поиском ответа на сервер, и как я получу данные из ответа, поэтому я могу проверить его на содержимое таблицы.

Вот упрощенный пример моего углового регулятора:

angular.module("myApp").controller("myCtrl", function(MyService) { 

    MyService.getData() 
     .then(function (response) { 
      $scope.data = response; 
     }); 
}); 

Затем страница HTML зацикливается над элементами в $ scope.data для заполнения таблицы.

Спасибо за помощь!

ответ

1

Как правило, вам не о чем беспокоиться, так как protractor знает, когда угловой готов к работе, и страница загружена. Другими словами, it syncs with Angular itself:

Вам больше не нужно добавлять ожидания и спит к вашему тесту. Protractor может автоматически выполнить следующий шаг в вашем тесте, когда веб-страница завершит выполнение ожидающих задач, поэтому вам не нужно беспокоиться о , ожидая синхронизации вашего теста и веб-страницы.

В некоторых случаях вам нужно явно ожидать, пока какое-то ожидаемое условие будет выполнено через browser.wait(). Например, вы можете подождать, пока конкретный элемент не будет присутствовать:

var EC = protractor.ExpectedConditions; 
var elm = element(by.css("#myid")); 

browser.wait(EC.presenceOf(elm), 10000); 

Существует большой набор built-in Expected Conditions, проверить его.

Что именно ждать в вашем случае, зависит от того, что происходит в браузере, когда браузер получает ответ сервера - может быть, появляется какая-то таблица или добавляются дополнительные строки таблицы, добавленные в существующую таблицу и т. Д.

Смежные вопросы