量角器:ElementArrayFinder到泛型数组

时间:2016-08-24 19:16:10

标签: javascript protractor

是否可以将ElementArrayFinder结果返回的element.all(....)转换为通用数组?

目标是将元素存储在数组中,并使用element.all()从另一个push()的结果中添加更多元素。

1 个答案:

答案 0 :(得分:1)

您可以扩展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"]);

经测试,在一个简单的测试用例中适合我。