如何在量角器中识别具有两个预期条件的特定元素

时间:2016-11-18 06:44:21

标签: protractor

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

的通知页面代码" Test Auction1

fiddle

enter image description here

我在spec文件中尝试过以下代码:

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));

PO文件如下:

{{1}}

但是上面的代码返回我count = 4,因为页面上有其他对象具有相同属性" NotificationTitle"但它不是通知列表的一部分。 任何人都可以建议我使用expect函数来处理这个问题吗?

1 个答案:

答案 0 :(得分:3)

您可以使用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();