一旦量角器首先执行,它的块就会给出错误:-等待量角器与页面同步时出错

时间:2018-11-14 11:50:17

标签: protractor

describe('Login Scenarios', function () {

    it('First IT block', function () {
        browser.get('http:XXXXXXXXXXXXXXXXXXXX');
        browser.manage().window().maximize();
        LoginPage.Login(USERNAME, PASSWORD);

    });   
    it('Second IT block', function () {
        browser.waitForAngularEnabled(false);        
        Properties.logout.click();
        Properties.confirmlogout.click();
        AutomationUtility.hold();
    });
});

当我将所有代码保留在第一个IT块中时,它运行良好,但是当分成多个测试用例时,量角器将仅执行第一个IT块,然后它给出错误消息,如下所示:-

Error: Error while waiting for Protractor to sync with the page: "both angularJS testability and angular testability are undefined.  This could be either because this is a non-angular page or because your test involves client-side navigation, which can interfere with Protractor's bootstrapping.  See http://git.io/v4gXM for details

然后,量角器不会关闭浏览器,并给出错误信息,即找不到按量角器按时间顺序运行测试用例的元素等。

2 个答案:

答案 0 :(得分:0)

browser.waitForAngularEnabled(false);移至配置protractor.conf.js文件到onPrepare部分。

export let config = {
  ...
  ...
  onPrepare () => {
    browser.waitForAngularEnabled(false);
    ...
  },
  ...
  ... 
};

或禁用在browser.get()之前等待角度,然后在browser.get()之后启用

describe('Login Scenarios', function () {

    it('First IT block', function () {
        // disable if opening page is non-angular page
        browser.waitForAngularEnabled(false);  
        browser.get('http:XXXXXXXXXXXXXXXXXXXX');

        // revert back to enable, after the non-angular page opened.
        browser.waitForAngularEnabled(true);  

        browser.manage().window().maximize();
        LoginPage.Login(USERNAME, PASSWORD);

    });   
    it('Second IT block', function () {               
        Properties.logout.click();
        Properties.confirmlogout.click();
        AutomationUtility.hold();
    });
});

答案 1 :(得分:0)

我可以通过将URL放在onPrepare部分中来解决。进入配置protractor.conf.js文件:-

返回browser.get('http://XXXXXXXXXXXXXXXXXXXX/login');

因此,单击登录按钮后量角器不会失败。等待量角器与页面同步时也没有出现任何错误。