browser.wait игнорирует мой параметр, чтобы ждать 20 секунд транспортир - PullRequest
0 голосов
/ 30 апреля 2018

Я написал этот тест, однако браузер не ждет эти 20 секунд перед поиском элемента. Он игнорирует эту часть и ждет только те 11 секунд по умолчанию. Что-то не так с моим кодом?

it('should navigate to Home tab', function() {
    element(by.css('[ui-sref="main.home"]')).click();

    var telematicsSection = element(by.id('teleMap'));

    var EC = protractor.ExpectedConditions;
    browser.wait(EC.presenceOf(telematicsSection), 20000);
});

Это ошибка, которую я получаю

Ошибка: истекло время ожидания завершения асинхронных угловых задач через 11 секунд. Это может быть потому, что текущая страница не является угловым приложением. Пожалуйста, смотрите FAQ для более подробной информации: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular В ожидании элемента с локатором - Locator: By (селектор css, * [id = "teleMap"]).

@ редактировать

Мне удалось это исправить. Код Яша Джагдейла и

allScriptsTimeout: 20000

в conf.js заставил это работать.

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Добавить browser.ignoreSynchronization = true; в onPrepare транспортира conf.js

onPrepare: function() {

  browser.ignoreSynchronization = true;
0 голосов
/ 30 апреля 2018

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

    it('should navigate to Home tab', function(callback) {
        element(by.css('[ui-sref="main.home"]')).click().then(function() {

        var telematicsSection = element(by.id('teleMap'));

        var EC = protractor.ExpectedConditions;
        browser.wait(EC.presenceOf(telematicsSection), 20000).then(function() {
           callback();
         });
      });
    }, 40000);
...