量角器测试达到超时

时间:2015-03-11 15:40:14

标签: login timeout protractor angularjs-e2e

我在量角器上运行登录测试。 登录页面是非角度的,但其余的是。 登录后,为了确保它通过,我在页面中搜索特定元素,并在一段时间后进入超时状态。

测试:

it('Should login using Email & Password', function () {
   browser.driver.findElement(by.id('userName_str')).sendKeys("testmail@testmail.com");
   browser.driver.findElement(by.id('password')).sendKeys("Password");
   browser.driver.findElement(by.xpath("//input[contains(@value,'Log In')]")).click();


   expect($('[data-ui-sref="myApps"]').isDisplayed()).toBeTruthy();
});

这是我一段时间后得到的(用户登录后我看到主页):

login Testing Should login using Email & Password
Message:
 timeout: timed out after 30000 msec waiting for spec to complete
Stacktrace:
 undefined

值得一提的是我正在使用

onPrepare: function() {
// for non-angular page
browser.ignoreSynchronization = true;
}

在配置文件中。

任何帮助将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:0)

ignoreSynchronization设置回默认值false

我认为您应该在规范中的afterEach()中执行此操作:

describe("My test", function () {

    afterEach(function () {
        browser.ignoreSynchronization = false;
    });

    it('Should login using Email & Password', function () {
         browser.ignoreSynchronization = true;      

         browser.driver.findElement(by.id('userName_str')).sendKeys("testmail@testmail.com");
         browser.driver.findElement(by.id('password')).sendKeys("Password");
         browser.driver.findElement(by.xpath("//input[contains(@value,'Log In')]")).click();

         expect($('[data-ui-sref="myApps"]').isDisplayed()).toBeTruthy();
    });

});