2014-12-02 13 views
18

La mia prima esecuzione ai test E2E. Sto cercando di digerire i test del goniometro di qualcun altro.Perché devo utilizzare browser.sleep durante la scrittura dei test del goniometro

Problema: Ci sono un sacco di browser.driver.sleep e questo sembra fragile.

Obiettivo: non utilizzare browser.driver.sleep

Domanda: Che cosa è un approccio migliore per browser.driver.sleep? Qualcosa di meno fragile come una promessa o qualcosa che non so di lol?

var config = require('../../protractor.conf.js').config; 
describe('this Homepage Body Tests', function(){ 
browser.driver.get(config.homepageUrl); 

it("should open find a clinic page", function(){ 
    // page loads :: want to fix this random wait interval 
    browser.driver.sleep(2000); 
    browser.ignoreSynchronization = true; 

    var string = 'clinic'; 
    var main = '.search-large-text'; 
    var link = element(by.cssContainingText('.submenu li a', string)); 

    link.click().then(function() { 
    // page reloads :: want to fix this random wait interval 
    browser.driver.sleep(3000); 
    var title = element(by.cssContainingText(main, string)); 
    expect(title.getText()).toBe(string); 
    }); 
}); 
}); 

risposta

11

Poiché non v'è una ignoreSynchronization acceso, non è possibile utilizzare waitForAngular(), che sarebbe una soluzione in caso di test angolare loco.

Una soluzione migliore sarebbe di impostare un pagina carico timeout:

browser.manage().timeouts().pageLoadTimeout(10000); // 10 seconds 

Vedi anche questi fili rilevanti sulla attese esplicite ei timeout:

+0

Sì sfortunatamente mentre ruotiamo completamente il nostro sito in modo angolare, la home page è ancora in binario. –

Problemi correlati