AngularJS Protractor:正在等待服务回调

AngularJS Protractor: waiting for a service callback?

本文关键字:服务 回调 在等待 Protractor AngularJS      更新时间:2023-09-26

所以,我正在编写一个量角器测试来登录应用程序。当用户成功登录时,会出现弹出通知,说明"您已成功登录"。

现在我正在做一个browser.sleep(),等待点击登录按钮后弹出窗口。我不喜欢这样做,在速度较慢的网络上,Protractor等待的时间不够长,当我试图捕捉弹出窗口或警报时,测试失败了,因为alert.accept()运行得太快了。

有没有办法等待登录时的承诺返回以继续测试?

更新:

我想我已经想通了。所以我在做这个:

LoginView.loginButton.click().then(function () {
   browser.wait(exc.alertIsPresent()).then(function () {
     App.catchAlert();
   })
});

这似乎有效,但我还没有在较慢的网络上进行测试。你觉得怎么样?

您需要专门等待警报出现。有一个特定的内置预期条件,称为alertIsPresent:

var EC = protractor.ExpectedConditions;
browser.wait(EC.alertIsPresent(), 10000);