是否可以将ElementArrayFinder
结果返回的element.all(....)
转换为通用数组?
目标是将元素存储在数组中,并使用element.all()
从另一个push()
的结果向其中添加更多元素。
最佳答案
您可以扩展ElementArrayFinder
并添加extend()
方法来连接两个数组查找器的内部Web元素的数组:
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"]);
经过测试,在一个简单的测试案例中为我工作。