javascript - Protractor :ElementArrayFinder 到通用数组

标签 javascript protractor

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

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

最佳答案

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

经过测试,在一个简单的测试用例中对我有用。

关于javascript - Protractor :ElementArrayFinder 到通用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39131398/

相关文章:

Javascript - 你能在错误中抛出一个对象吗?

javascript - 使用jquery解析json

javascript - 从与已定义变量匹配的对象数组中的对象获取值

javascript - 为什么这个数组只是选择随机数?

protractor - 如何配置 Protractor 以使用 Cucumber

javascript - 在 Protractor 中通过 ng-click 选择一个元素

javascript - 对于异步测试和 Hook ,请确保调用 "done()";如果返回 Promise,请确保它解析 puppeteer 和 mocha

javascript - Protractor ,迭代元素: Failed: stale element reference

javascript - 使用 Protractor 进行数据驱动测试

javascript - sendKeys(index) 中值的 Protractor 循环