2016-08-24 24 views
1

是否有可能將由element.all(....)的結果返回的ElementArrayFinder轉換爲通用數組?量角器:ElementArrayFinder到通用陣列

目標是將元素存儲在數組中,並使用push()從另一個element.all()的結果中爲它們添加更多元素。

回答

1

可以延伸ElementArrayFinder並添加extend()方法串聯兩個陣列發現者的內部腹板元件的陣列:

protractor.ElementArrayFinder.prototype.extend = function(finder) { 
    var self = this; 
    var getWebElements = function() { 
     return self.getWebElements().then(function(parentWebElements) { 
      return finder.getWebElements().then(function(newWebElements) { 
       return parentWebElements.concat(newWebElements); 
      }); 
     }); 
    }; 
    return new protractor.ElementArrayFinder(this.browser_, getWebElements, this.locator_); 
}; 

用法:

var arr1 = $$(".myclass"); 
var arr2 = $$(".someotherclass"); 

var newArr = arr1.extend(arr2); 
expect(newArr.getText()).toEqual(["text1", "text2", "text3"]); 

測試,在一個適用於我簡單的測試案例。