在量角器中对多个按钮使用循环

Using a loop for multiple buttons in Protractor

本文关键字:按钮 循环 量角器      更新时间:2023-09-26

目前我正在研究一个量角器项目,该项目有多个或只有一个重复出现的、没有问题的错误消息,在继续其余测试之前必须清除(单击确定)。 在页面加载开始时显示的错误消息有时可能不止一个,我希望"点击"所有这些错误消息。 其中一个代码很简单:

alertMessages['alertMessage'].isPresent().then(function (isHere) {
                        if (!isHere) {
                           alertMessages['alertMessageOKButton'].click();
                        }
                    });

我尝试围绕它进行一个简单的循环,由于某种超出我知识范围的原因,它工作了一段时间,现在已经停止正常工作。

我想

你想测试一个警报框。如果我是对的,请使用browser.switchTo().alert().accept();

欲了解更多信息,请访问此链接:https://github.com/angular/protractor/blob/3d60689b423749686973227f4b26cbb494f60b66/spec/basic/navigation_spec.js#L8

并在此处查看浏览以获取更多信息:https://angular.github.io/protractor/#/api?view=webdriver.WebDriver.TargetLocator.prototype.alert

你可以

使用async.whilst。基本上继续单击,直到所有警报都关闭。这是对您的代码的一些修改(顺便说一句,我不知道alertMessages是什么)。但我希望你明白这个想法。

async.whilst(
    function () { 
        return alertMessages['alertMessage'].isPresent().then(function(isPresent){
            return isPresent;
    }) },
    function (callback) {
      alertMessages['alertMessageOKButton'].click();
    },
    function (err, n) {
      console.log('Total number of alerts were '+ n);
      if(err) {
         done(err);
      } else {
        done();
      }
    }
);