2016-11-18 11 views
1

私のアプリケーションでは、特定の通知をの所有者名を使用して選択したいと考えています。分度器ではどうしたらいいですか? スクリーンショットを追加しました。リストから「Sonal Dalalによるテストオークション1」という通知を選択したいと思います。分度器で2つの期待条件を持つ特定の要素を特定する方法

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ファイルは次のとおりです。 セカンドスクリーンショットは、私が仕様ファイル内のコードの下にしようとしている "Sonal DalalによってテストAuction1" 通知のためのページコード

enter image description here

enter image description here

を示し以下のようになります。

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

しかし、上記のコードでは、 "NotificationTitle"と同じプロパティを持つ他のオブジェクトがページにありますが、通知リストの一部ではないため、count = 4が返されます。 誰も私が期待する関数を使ってこれを扱う別の方法を提案することができますか?

答えて

3

は、あなたはそれが私のために働いた、

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(); 
+0

おかげで多くのことを、以下のロケータconditions.Tryに基づいて要素のリストをフィルタリングするfilter()メソッドを使用することができます。 –

関連する問題