使用Protractor时如何从内部函数中获取值

时间:2015-07-27 04:38:07

标签: angularjs closures protractor karma-jasmine end-to-end

我正在尝试返回按钮集合中按钮的索引值。我花了很多时间来检查闭包,但由于这是量角器,一些信息似乎没有排成一行。这是我到目前为止的地方:

我收集了arrayElement中的按钮列表 - [button1,button2,button3]。 我有一个目标元素......即button2

如果我要查找的按钮与我的目标元素匹配,我想要索引。

以下是我的代码:

"echo"

1 个答案:

答案 0 :(得分:1)

如果您确实需要索引,可以使用map()解决问题:

function getIndex () {
    return components.map(function (component, compIndex) {
        return {
            text: component.getText(),
            index: compIndex
        };
    }).then(function (results) {
        for (var i = 0; i < results.length; i++) {
            if (results[i].text === targetComponent) {
                return results[i].index;
            }
        }
    });
}

但是,如果您需要按文字过滤掉实际按钮,那么filter()就是一个很好的用例:

function getButton(targetComponent) {
    return components.filter(function (component) {
        return component.getText().then(function (text) {
            return targetComponent === text;
        });
    }).first();
}