2017-01-24 13 views
1

Я использую browser.wait для обработки spinner на странице входа, но он действительно ждет все время, которое я прошел в качестве третьего параметра.Явный wait in protractor не работает

Он должен перейти к следующему тестовому примеру, когда домашняя страница появится через 15 минут, поскольку я предусмотрел ожидание 20 минут. кто-нибудь может помочь здесь.

it('test case', function() { 
     loginPage.login(browser.params.Login.username, browser.params.Login.password); 
     browser.wait(function() { 
     loginPage.Spinner().then(function(presenceOfElement) { 
      logger.info('App is waiting for spinner to complete'+ presenceOfElement); 
      return !presenceOfElement 
     }, 20*60*1000); 
     }); 
    }); 
+1

Предполагая, что вы ожидаете, что счетчик выйдет из строя - вы пробовали с ожидаемым условием invisibilityOf? http://www.protractortest.org/#/api?view=ProtractorExpectedConditions.prototype.invisibilityOf. – Grasshopper

+0

Не могли бы вы разместить функцию 'Spinner()'? Похоже, что это не решение обещания - то есть я читаю здесь http://www.protractortest.org/#/api?view=webdriver.WebDriver.prototype.wait –

+0

@ bob.mazzo вот моя функция объекта страницы. this.Spinner = element (by.tagName ('a')); это.Spinner = функция() { возврат browser.isElementPresent (this.Spinner); }; – tyaga001

ответ

0

Я бы предложил переписать объект страницы и тест, чтобы сделать более понятным, что происходит в тесте. Попробуйте следующее:

// loginPage page object 
this.getSpinner = function() { 
    return element(by.tagName('a')); 
}; 

// test 
browser.wait(function() { 
    return loginPage.getSpinner().isPresent().then(function (isSpinnerPresent) { 
     return !isSpinnerPresent; 
    )}; 
}, 20*60*1000); 
+0

те же результаты с вышеуказанным решением. тестовый кейс ждет, пока все 20-миллионные даже не вернутся в течение 5 минут – tyaga001

+0

Вы уверены, что ваш элемент spinner не просто скрыт, но все еще присутствует в DOM через 5 минут? В этом случае вам нужно будет проверить 'isDisplayed()' вместо 'isPresent()'. – finspin

+0

Нет после того, как элемент входа не скрыт, потому что я поставил logger и он возвращает false. Результаты регистрации- downloadtrue [2017-01-25 09: 58: 29.883] [INFO] [default] - приложение ожидает исходного содержимого downloadfalse [2017-01-25 09: 59: 06.659] [INFO] [ default] - приложение ожидает первоначального содержимого – tyaga001