2016-11-04 1 views
0

Dans mon script Protractor, j'appelle browser.ignoreSynchronization=false; après la deuxième instruction (après l'instruction de connexion), mais il est appliqué avant l'instruction de connexion, car les instructions sont exécutées dans l'ordre 1> 3> 2. ci-dessous est mon code.Exécution séquentielle des instructions de script protractor

browser.ignoreSynchronization= true;//1 
    loginPage.login(loginData.free.username,loginData.free.password);//2 
    browser.ignoreSynchronization=false;//3 

Cependant, si j'utilise protractor.promise.controlFlow() comme ci-dessous il fonctionne très bien. Mais comment forcer des scripts protractor à exécuter séquentiellement sans utiliser protractor.promise.controlFlow().

browser.ignoreSynchronization= true; 
var flow = protractor.promise.controlFlow(); 
    flow.execute(function() { 
     loginPage.login(loginData.free.username,loginData.free.password);    
     browser.ignoreSynchronization=false; 
    } 
+0

écoulement var = protractor.promise.controlFlow(); est-ce nécessaire d'utiliser? –

+0

@SureshSalloju si je n'utilise pas 'var flow = protractor.promise.controlFlow();' je reçois '"window.angular est indéfini.' erreur – Jlearner

+1

Pouvez-vous mettre browser.ignoreSynchronization = true, cette déclaration dans la méthode beforeAll() si vous utilisez jasmine.Il doit être déclaré avant d'appeler la méthode browser.get() –

Répondre

2

Mettez 'browser.ignoreSynchronization = true;' déclaration dans la méthode beforeAll() si vous utilisez jasmine. Il doit être déclaré avant d'appeler browser.get() et également déclarer 'browser.ignoreSynchronization = false;' déclaration après l'opération de connexion.

Extrait de code:

beforeAll(function(){ 
    browser.ignoreSynchronization= true; 
    browser.get('url'); 
    }); 

it('test logic',function(){ 
    loginPage.login(loginData.free.username,loginData.free.password); 
    browser.ignoreSynchronization=false; 
});