是否可以将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"]);


经过测试,在一个简单的测试案例中为我工作。

09-25 16:50