我在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,