2016-11-04 47 views
0

在我的量程器脚本中,我在第二个语句(登录语句后)后调用browser.ignoreSynchronization=false;,但是它在登录语句之前应用,因为语句按1> 3> 2的顺序执行。下面是我的代码。强制量角器脚本语句按顺序执行

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

但是,如果我使用protractor.promise.controlFlow()像下面那么它工作正常。但是如何在不使用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

VAR流量= protractor.promise.controlFlow();这是否需要使用? –

+0

@SureshSalloju如果我不使用'var flow = protractor.promise.controlFlow();''我越来越''“window.angular是未定义的。错误 – Jlearner

+1

你可以把browser.ignoreSynchronization = true;这个语句放在beforeAll()方法中,如果你用的是jasmine,应该在调用browser.get()方法之前声明 –

回答

2

Put'browser.ignoreSynchronization = true;' beforeAll()方法中的语句,如果你使用茉莉花。它应该在调用browser.get()之前声明并声明'browser.ignoreSynchronization = false;'声明登录后的操作。

代码段:

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

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