量角器挂在Chrome中的输入元素上

时间:2015-09-05 06:11:49

标签: protractor

我有简单的表格,有2个输入 - 用户名和密码以及登录按钮。 一切都很完美,但是在Mac上的Chrome中填充第一个输入后,量角器测试就会挂起(它适用于Mac上的Firefox)。 什么是奇怪的有时它填充他们两个,但挂在点击按钮。 超时后,我得到超时等待Protractor在11秒后与页面同步。'

它的原因是什么?

这是HTML:

<input type="text" 
       name="username"
       ng-enter="ctrl.login(ctrl.username, ctrl.password)"
       ng-model="ctrl.username">

<input type="password"
       name="password"
       ng-enter="ctrl.login(ctrl.username, ctrl.password)"
       ng-model="ctrl.password">

<a href="" class="btn btn-login btn-danger btn-float no-waves"
           ng-click="ctrl.login(ctrl.username, ctrl.password)">
</a>

量角器测试:

describe('basic', function () {

    it('should login to application', function () {

        browser.get('lib/iqsec/ui/src/index.html#/?redirect_url=http://localhost:3000/dist/index.html');

        browser.sleep(1000);

        expect(browser.getTitle()).toBe('Logowanie');

        element(by.css('input[name="username"]')).sendKeys('user');
        element(by.css('input[name="password"]')).sendKeys('user');
        element(by.css('a.btn-login')).click();

        browser.sleep(1000);

        expect(browser.getTitle()).toBe('IMPAQ Alerter');
    });
});

2 个答案:

答案 0 :(得分:0)

ng-app指令位于DOM中的哪个位置?默认情况下,量角器认为它是在body元素上。如果没有,你应该使用这样的参数配置:

rootElement: 'html',

为了提供正确的路径。还尝试增加超时:

allScriptsTimeout: 50000,

答案 1 :(得分:0)

此问题与最新版Google Chrome有关。我也有同样的问题。我找到的简单解决方案是使用旧版Google Chrome(例如,43.0.2357.134),直到错误得到修复。在Mac上,您可以同时安装多个版本。