【问题标题】:How to identify specific element with two expect conditions in protractor如何在量角器中识别具有两个预期条件的特定元素
【发布时间】:2016-11-18 06:44:20
【问题描述】:

在我的应用程序中,我想通过使用它的名称 AND 所有者名称来选择特定通知。我怎么能在量角器中做到这一点? 我添加了屏幕截图,我想从列表中选择通知“Sonal Dalal 的测试 Auction1”。 第二个屏幕截图显示了通知“Sonal Dalal 测试 Auction1”的页面代码

我在规范文件中尝试了以下代码:

Auction.AuctionNotiNewInv.isDisplayed().then(function(){
        Auction.NotificationTitle.get(0).isDisplayed().then(function(){
            Auction.NotificationTitle.count().then(function(Count){
                console.log(Count);
                var NotifTitleCount = Count;
                for(var i=0; i < NotifTitleCount; i++) {
                    Auction.NotificationTitle.get(i).isDisplayed().then(function(){
                        Auction.NotifAuctioneer.isDisplayed().then(function(IsDisplayed){
                        if(IsDisplayed)
                            Auction.NotificationTitle.get(i).click();
                         else
                            console.log('New Auction invitation is not displayed.');

                        });
                    });
                }
            });
        });
    });

PO文件如下:

this.AuctionNotiNewInv = element(by.cssContainingText('.md-subheader-inner','NEW INVITATIONS'));
this.NotificationTitle = element.all(by.cssContainingText('.title.ng-binding',data.AuctionName));
this.NotifAuctioneer = element(by.cssContainingText('.subtitle.ng-binding',data.NewFirstName + ' ' + data.NewLastName));

但上面的代码返回我 count = 4,因为页面上还有其他对象具有相同的“NotificationTitle”属性,但它不是通知列表的一部分。 有人可以建议我用另一种方法来处理这个问题吗?

【问题讨论】:

    标签: protractor


    【解决方案1】:

    您可以使用filter() 方法根据条件过滤元素列表。试试下面的定位器,

    var expectedTitle= 'TestAuction1';
    var expectedOwner = 'Sonal Dalal';
    var notificationElement = element.all(by.repeater("notif in notifSubList")).filter(function(notification){
      var title = notification.element(by.css("span.title")).getText();
      var owner = notification.element(by.css("span.subtitle")).getText();
      return protractor.promise.all([title,owner]).then(function(result){
         return result[0].trim() == expectedTitle && result[1].trim() == expectedOwner;
      })
    }).first();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多