现在ng-app指令在html标签上,量角器抛出错误

时间:2016-01-04 21:19:42

标签: javascript html angularjs protractor

最近我使用的开发人员将ng-app指令从body标签移动到我们正在处理的应用程序中的html标签。我正在使用量角器构建端到端测试套件,因为我们目前正在使用Angular 1.4.8

在今天早上之前,我所有测试中的所有内容都成功运行,但是现在ng-app指令位于html标记上,我收到以下错误。

 /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/async/nexttick.js:41
goog.global.setTimeout(function() { throw exception; }, 0);
                                  ^
Error while waiting for Protractor to sync with the page: "window.angular is 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"

我知道我需要在conf.js文件中定义rootElement:' html',以下是我的conf.js文件中的以下代码

exports.config = {
framework: 'jasmine2',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['helpers.e2e.js', 'specs/leases.spec.js', ],
baseUrl: 'http://test.manage.ourApp.com/',
rootElement: 'html',
capabilities: {
  'browserName': 'chrome'
},
//This can be changed via the command line as:
//--params.login.user 'ourApp'
  params: {
  login: {
    email: 'ourApp.test@gmail.com',
    password: 'test'
  }
}, 

jasmineNodeOpts: {
  showColors: true,
  defaultTimeoutInterval: 300000,
  isVerbose: true,
  includeStackTrace: true
},

HTML代码如下所示

 <html ng-app="ourApp" class="ng-scope">

我从网上尝试过这么多建议,但仍然无法弄清楚我做错了什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

protractor.conf.js文件中,您应该将rootElement指定为选择器,以便找到包含ng-app属性的元素:

rootElement: '[ng-app="ourApp"]'