对Liferay中存储的angular度应用程序执行量angular器testing时,“angular度未定义”错误

我在Ubuntu 14.04虚拟主机上运行,​​我正在尝试使用PROTRACTOR创build一些E2Etesting,并在“Liferay”中托pipe应用程序。

对于login部分(不需要angular度)量angular器的testing是正确的,页面login和导航正确,但是当我尝试打开一个“下拉”菜单的基于angularjs的应用程序与下面的代码:

<select class = "form-control menu-select ng-pristine ng-valid" ng-model = "topTitlesData.topFiveDateRange" name = "topFiveDateRange" ng-options = "range.name for range in topTitlesData.topFiveDateRangeValues" ng-change = "" > < option value = "0" > Last day < /option><option value="1">Last 5 days</option > < option value = "2" > Last 7 days < /option><option value="3">Last 30 days</option > < option value = "4" > last 90 days < /option></select> 

我得到这个错误日志:

UnknownError:未知错误:未定义angular度

 This is the test script on js: describe('pages with login', function() { it('should log in with a non-Angular page and select and option', funcion() { browser.ignoreSynchronization = true; browser.get('***************'); element(by.id('_58_login')).clear(); element(by.id('_58_login')).sendKeys('*******'); expect(element(by.id('_58_login')).getAttribute('value')).toEqual('*****'); element(by.id('_58_password')).sendKeys('*****', protractor.Key.ENTER); browser.get('***************'); //browser.ignoreSynchronization = false; var selects = element.all(by.model('topTitlesData.topFiveDateRange')); expect(selects.count()).toEqual(5); }); }); 

我想知道,我错过了什么?

我有nodejs,量angular器,webadmin的经理,jdk7。*安装和更新

问题可能是您的测试在浏览器页面完全加载之前运行。 angular全局变量尚未创建。 您可以通过在protractor.conf.js文件的onPrepare方法中放入以下行来确保在测试开始之前已经加载了所有文件:

 browser.driver.get(browser.baseUrl); 

这将在任何测试开始之前导航到页面,并确保全部加载。

谢谢,问题是测试没有等到加载到页面的角度…所以我设置一个本地主机的应用程序与“Grunt”,“Yeoman”和Ruby +“红宝石指南针”宝石,并避免Liferay的。 我也设置

 allScriptsTimeout: 5000000,