量角器通过绑定单击转发器中的特定元素

时间:2015-04-27 06:20:02

标签: javascript testing protractor ng-repeat end-to-end

我知道过去曾以某种不同的形式提出这个问题,但仍然没有找到确切的答案。

我需要在转发器中找到一个元素并单击它。 转发器是一个应用程序列表,我需要找到具有属性' displayName'的特定应用程序。等于特定变量(" appName1"例如)。

这是转发器:

<div class="col-md-3 ng-scope" ng-repeat="app in userApps"> <a data-ui-sref="myAppById({appId:app.id})" class="square_container" href="/developers/myApps/ab7d4369-a2da-4bc5-92a5-a19a1af2db1d"> <strong class="app-display-name ng-binding">appName</strong>... 

这只是其中的一部分。

我需要在userApps中找到它的displayName等于&#34; appName1&#34;例如,单击它。

1 个答案:

答案 0 :(得分:2)

有多种方法可以找到所需的元素,但我会链接element.all()element()并使用by.xpath() locator strategy

var a = element.all(by.repeater("app in userApps")).element(by.xpath(".//a[strong = 'appName1']"));
a.click();

或者,使用filter()

element.all(by.repeater("app in userApps")).filter(function (elm) {
    return elm.evaluate("app.displayName").then(function (displayName) {
        return displayName === "appName1";
    });
}).then(function (elms) {
    var link = elms[0].element(by.tagName("a"));
    link.click();
});