javascript - AngularJS Protractor : waiting for a service callback?

标签 javascript angularjs protractor

所以,我正在编写一个 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/

相关文章:

javascript - 在接口(interface) Typescript 中定义回调

javascript - 在页面加载时加载 angularjs View ?

javascript - Protractor - 断言评估()值

javascript - 应用更改字符的过滤器后按名称过滤

javascript - 是否可以使用 Protractor 将 for 循环运行到 .then 中?

selenium-webdriver - Protractor/网络驱动程序 : Detect when Class is added to Element

javascript - 用于旋转木马的 Jquery 函数循环(flowtext)

c# - 使用javascript从html文本框中获取值

javascript - jQuery UI 日期选择器中的静默错误

javascript - AngularJS 的单对象模型