量角器。页面上的一个操作后浏览器错误

时间:2017-04-13 20:11:20

标签: angularjs webdriver protractor

我是量角器的新人,现在我的工作需要是为angularjs应用程序创建测试项目。 我已经开始使用指南并在开始时遇到错误:

Error: Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: []
http://errors.angularjs.org/1.4.0/$rootScope/infdig?p0=10&p1=%5B%5D
http://localhost/main-f3fbd0c72e8415cd0a449214b66bdacc-cached.js:2140
    at window.onerror (http://localhost/main-f3fbd0c72e8415cd0a449214b66bdacc-cached.js:1277:52)

配置文件

  exports.config = {
    directConnect: true,

    seleniumAddress: 'http://localhost:4444/wd/hub',

    capabilities: {
       'browserName': 'chrome'
    },
    specs: ['specs/spec.js'],

    jasmineNodeOpts: {
       showColors: true,
       defaultTimeoutInterval: 30000
    }
};

测试文件:

    "use strict";

    describe('WEB test project', function() {

    var wl5StartPage = require('../pages/startPage.js');
      it('Its start login page', function() {
        wl5StartPage.get();  
        wl5StartPage.wl5Login();
    });
  });

startPage.js:

var WL5LoginPage = function() {

    this.userName = element(by.model('loginInfo.userId'));
    this.loginButton = element(by.css('[ng-click="login()"]'));

    this.get = function() {
        browser.get('http://localhost/login');
    };

    this.wl5Login = function() {    
        this.userName.sendKeys("user1");
        this.loginButton.click();
    };
}

module.exports = new WL5LoginPage();

它非常简单的测试,但不幸的是,当我输入用户名并点击了#34;登录"时,它崩溃了。 有没有办法忽略这样的浏览器错误?或者某种方法来解决问题?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

基本上protractorJS代码没有任何问题。你看到这个的原因 - 这是因为你的角度应用程序抛出了这个错误。量角器试图在页面上等待角度 - 但不能。您的错误似乎与此类似 - Error: 10 $digest() iterations reached. Aborting! with dynamic sortby predicate

我建议只作为临时解决方案禁用量角器的waitForAngular来调试你的测试:

browser.waitForAngularEnabled(false)

http://www.protractortest.org/#/api?view=ProtractorBrowser.prototype.waitForAngularEnabled

但我99%确定这是必须在前端修复的,以便在自动等待角度的情况下实现平滑的测试自动化。

更新:您也可以尝试在量角器配置中启用此属性 - https://github.com/angular/protractor/blob/master/lib/config.ts#L485