所以,我正在编写一个 Protractor 测试来登录应用程序。当用户成功登录时,会出现一个弹出通知,提示“您已成功登录”。
现在我正在执行 browser.sleep()
以等待在单击登录按钮后弹出弹出窗口。我不喜欢这样做,在较慢的网络上,Protractor 等待的时间不够长,当我 try catch 弹出窗口或警报时测试失败,因为 alert.accept()
运行得太快了。
有没有办法等待登录的 promise 返回以继续测试?
更新:
我想我已经弄明白了。所以我这样做:
LoginView.loginButton.click().then(function () {
browser.wait(exc.alertIsPresent()).then(function () {
App.catchAlert();
})
});
这似乎可行,但我还没有在较慢的网络上测试过它。你怎么看?
最佳答案
您需要专门等待警报出现。有一个特定的内置 Expected Condition称为 alertIsPresent
:
var EC = protractor.ExpectedConditions;
browser.wait(EC.alertIsPresent(), 10000);
关于javascript - AngularJS Protractor : waiting for a service callback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29170378/