2017-01-24 2 views
1

Ich benutze browser.wait, um Spinner auf der Anmeldeseite zu behandeln, aber es wartet tatsächlich auf die ganze Zeit, die ich als ein dritter Parameter übergeben habe.explizite Wartezeit im Winkelmesser funktioniert nicht

Es sollte zum nächsten Testfall weitergehen, wenn die Homepage nach 15 Minuten erscheint, da ich die 20 Minuten warten muss. Kann mir bitte jemand hier helfen.

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

Angenommen, Sie warten auf den Spinner zu Disapper - Haben Sie versucht mit der Unsichtbarkeit der erwarteten Bedingung? http://www.protractortest.org/#/api?view=ProtractorExpectedConditions.prototype.invisibilityOf. – Grasshopper

+0

Könnten Sie Ihre 'Spinner()' Funktion posten? Es scheint, dass es das Versprechen nicht auflöst - d. H. Ich lese hier http://www.protractortest.org/#/api?view=webdriver.WebDriver.prototype.wait –

+0

@ bob.mazzo Hier ist meine Seitenobjektfunktion. this.Spinner = Element (by.tagName ('a')); this.Spinner = function() { zurück browser.isElementPresent (this.Spinner); }; – tyaga001

Antwort

0

Ich würde vorschlagen, das Seitenobjekt und den Test neu zu schreiben, um klarer zu machen, was im Test vor sich geht. Versuchen Sie dies:

// 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

gleiche Ergebnisse mit der obigen Lösung. Testfall wartet auf die gesamten 20 Minuten sogar Login Spinner geht innerhalb von 5 Minuten – tyaga001

+0

Sind Sie sicher, dass Ihr Spinner-Element ist nicht nur versteckt, aber immer noch in der DOM nach 5 Minuten? In diesem Fall müssten Sie anstelle von 'isPresent()' 'isDisplayed()' testen. – finspin

+0

Nein nach dem Login-Element ist nicht versteckt, weil ich Logger setzen & es gibt false zurück. Logger-Ergebnisse- downloadtrue [2017-01-25 09: 58: 29.883] [INFO] [Standard] - App wartet auf ursprünglichen Inhalt herunterladenfalse [2017-01-25 09: 59: 06.659] [INFO] [ Standard] - App wartet auf anfänglichen Inhalt – tyaga001

Verwandte Themen