我有一个使用angular-strap模式的login-dialog,它被调用:
scope.authModal = $modal({
template: '/components/login/login.html',
show: false,
scope: scope,
backdrop: 'static'
});
(该代码位于登录指令的链接函数内部.)
现在,我的量角器代码如下所示:
it('should perform login properly', function () {
browser.manage().deleteAllCookies();
element(by.model('login.username')).sendKeys('xy123');
element(by.model('login.password')).sendKeys('abz89');
element(by.binding("guiText.loginButton")).click();
browser.waitForAngular();
expect(element(by.id('login.username')).isPresent()).to.eventually.equal(false);
});
在上方的另一个测试中,当登录对话框可见时,元素(by.id(‘login.username’)).isPresent()已被证明等于true.
问题是,我收到错误消息:该测试超出了10000ms的超时时间.在浏览器中,我可以看到正确输入了凭据并且正在单击按钮.登录模式消失,然后什么也没有发生,并且浏览器最终在等待10秒后运行到该超时异常.
解决方法:
我有同样的问题,下面我做了解决.
将此函数写入您的帮助文件中,并调用此函数以单击代码中的登录按钮.尝试按ID访问按钮,然后在此函数中传递ID,如果不是ID,则根据需要更新函数
var clickAndWait= function (btnId) {
var returnVal = false;
browser.wait(function () {
if (!returnVal) {
element(by.id(btnId)).click().then(function () {
returnVal = true;
});
}
return returnVal;
}, 30000);
};