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