"角度未定义"在Liferay中存储的角度应用程序上执行Protractor测试时出错

时间:2015-02-09 17:10:10

标签: javascript node.js ubuntu protractor e2e-testing

我正在Ubuntu 14.04虚拟主机上运行,​​我正在尝试使用PROTRACTOR for和#34; Liferay"中的应用程序创建一些E2E测试。

对于登录部分(不需要角度),使用量角器的测试是好的,页面登录并正确导航,但是当我尝试打开"下拉"基于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:未知错误:未定义角度

&#13;
&#13;
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);
  });
});
&#13;
&#13;
&#13;

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

我安装并更新了nodejs,量角器,webadmin-manager,jdk7。*

2 个答案:

答案 0 :(得分:3)

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

browser.driver.get(browser.baseUrl);

这将在任何测试开始之前导航到页面并确保所有测试都已加载。

答案 1 :(得分:0)

谢谢,问题是测试没有等到加载到页面的角度...所以我用#34; Grunt&#34;,&#34;设置了一个带有应用程序的localhost。约曼&#34;和Ruby +&#34; ruby​​-compass&#34;宝石和避免生命。我也设置了

&#13;
&#13;
allScriptsTimeout: 5000000,
&#13;
&#13;
&#13;

在config.js文件中,现在测试运行正常。