2017-02-16 4 views
1

Auf der nicht-eckigen Seite, wenn ich auf ein bestimmtes Optionsfeld klicke, erscheint das Symbol zum Laden der Seite. Im Winkelmesser-Test möchte ich warten, bis dieses Lade-GIF verschwindet und dann nach einem anderen Element suchen.Warten, bis das Bild zum Laden der Seite im Winkelmesser auf der nicht-eckigen Seite verschwindet

HTML des Laders (die immer vorhanden ist):

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

Was ich in Test gemacht haben:

 ... 
     // 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); 

Das Problem ist, dass ich immer

Warten Zeitüberschreitung nach 20009ms

Wie kann ich warten, bis loader gif verschwindet?

+0

'return! Browser.isElementPresent (by.css (" .loader "));' warum benutzen Sie 'nicht' hier? – FCin

+0

Ich sehe Ihren Punkt, wie ich diese Lösung kopiert habe und dies nicht bemerkte. – jurijk

Antwort

4

Es gibt einen eingebauten in invisibilityOf Erwarteter Zustand speziell für diesen Anwendungsfall:

page.sortByBalanceSelector.click(); 

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

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

Sie auch stalenessOf was im Grunde bedeutet „nicht vorhanden“ verwenden.


Das Problem mit Ihrem aktuellen Ansatz ist, dass Sie die „nicht“ an die Versprechen von isElementPresent() zurück anwenden, und da ein Versprechen immer truthy ist, sind Sie immer bekommen „false“ als Ergebnis einer Wartebedingung, daher der Timeout-Fehler.

+0

Problem gelöst! DANKE! Ich habe 'browser.wait (EC.invisibilityOf (loader), 5000) verwendet;' und es hat den Charme. Kann mich jemand auf ein Dokument oder eine Seite verweisen, auf dem alle erwarteten Bedingungen für den Winkelmesser erklärt werden? – jurijk

+0

Stupid mich, keine Notwendigkeit für einen Link zu Seite, wo die erwarteten Bedingungen als Winkelmesser Seite erklärt hat es abgedeckt: http://www.protractortest.org/#/api. – jurijk