我在量角器上运行登录测试。 登录页面是非角度的,但其余的是。 登录后,为了确保它通过,我在页面中搜索特定元素,并在一段时间后进入超时状态。
测试:
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;
}
在配置文件中。
任何帮助将不胜感激。 感谢。
答案 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();
});
});