2017-02-16 28 views
1

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

HTML загрузчика (который всегда присутствует):

<div class="loader" style="display: none;"> 
    <div id="loader"> 
     <img src="/img/loading.gif"> 
    </div> 
    <div class="totalMaskForLoader"></div> 
</div> 

То, что я сделал в тесте:

 ... 
     // click on balance dropdown 
     page.sortByBalanceSelector.click(); 

     browser.wait(function() { 
        // return a boolean here. Wait for spinner to be gone. 
        return !browser.isElementPresent(by.css(".loader")); 
       }, 20000); 

     // compare to the starting player's username 
     expect(page.hasText(page.usernameCellButton)).not.toContain(startingUsername); 

Проблема заключается в том, что я всегда получаю

Wait время ожидания после 20009 мс

Как я могу подождать, пока погрузчик gif исчезнет?

+0

'return! Browser.isElementPresent (by.css (". Loader "));' почему вы используете 'not' здесь? – FCin

+0

Я вижу вашу точку зрения, поскольку я скопировал это решение и не замечал этого. – jurijk

ответ

4

Существует встроенный invisibilityOf ожидаемого условия специально для этого случая использования:

page.sortByBalanceSelector.click(); 

var loader = element(by.id("loader")); 
var EC = protractor.ExpectedConditions; 

browser.wait(EC.invisibilityOf(loader), 5000); 

Вы также можете использовать stalenessOf, которые в основном означает «нет».


Проблема с текущим подходом является то, что вы применяете «не» на обещание возвращенного isElementPresent(), и, так как обещание всегда truthy, вы всегда получаете «ложь» в результате условия ожидания, следовательно, ошибка тайм-аута.

+0

Проблема решена! СПАСИБО! Я использовал 'browser.wait (EC.invisibilityOf (loader), 5000);' и он сделал обаяние. Может ли кто-нибудь указать мне на документ или страницу, где объясняются все условия, связанные с Ожидаемым Транспортером? – jurijk

+0

Глупо мне, нет необходимости указывать ссылку на страницу, где ожидаемые условия объясняются как страница «Проходчик»: http://www.protractortest.org/#/api. – jurijk