[英]protractor click specific element in repeater by binding
我知道该问题过去曾以不同的形式提出过,但仍未找到确切答案。
我需要在中继器中找到一个元素,然后单击它。 中继器是应用程序的列表,我需要找到属性“ 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等于“ appName1”的应用程序,然后单击它。
有多种方法可以找到所需的元素,尽管我会链接element.all()
和element()
并使用by.xpath()
定位器策略 :
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();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.