所以,我正在写一个量角器测试来登录一个应用程序。当用户成功登录时,会出现弹出通知,说明您已成功登录。"
现在我正在执行browser.sleep()
等待点击登录按钮后弹出窗口。我不喜欢这样做,在较慢的网络上,当我试图抓住弹出窗口或警报因为alert.accept()
运行得太早时,Protractor没有等待足够长的时间并且测试失败。
有没有办法等待登录的承诺返回继续测试?
更新:
我认为我已经弄明白了。所以我这样做:
LoginView.loginButton.click().then(function () {
browser.wait(exc.alertIsPresent()).then(function () {
App.catchAlert();
})
});

这似乎有效,但我还没有在较慢的网络上测试它。你觉得怎么样?
答案 0 :(得分:1)
您需要专门等待警报出现。有一个名为Expected Condition的特定内置alertIsPresent
:
var EC = protractor.ExpectedConditions;
browser.wait(EC.alertIsPresent(), 10000);