我确信这是一个简单的,但我的眼睛正在慢慢地死在我身上。
基本上,有没有办法在转发器中获取元素?例如,我在转发器中有一堆锚点,但是附加到锚点的类是通用的,所以类似于:
<li ng-repeat="mainItem in mainNav" class="nav">
<a class="link" href="#">Link 1</a>
</li>
<li ng-repeat="subItem in subNav" class="nav">
<a class="link" href="#">Link 2</a>
</li>
这里我只想在mainNav
转发器中获取锚点(更重要的是每个锚点的相应hrefs)。
我在考虑filter()
,但不完全确定我可以在这里应用什么函数来仅检索所需的锚点/ hrefs(这实际上与另一个问题有关,可以在这里找到我映射hrefs的地方 - Protractor clicking through an array of elements)
这就是我的想法......任何帮助都会受到赞赏:
element
.all(by.repeater('mainItem in mainNav')).
.filter(function(items) {
// TODO: not sure what i can do here, except something like:
// items.getText().then({})
})
.map(function(link) {
return link.getAttribute('href');
})
.then(function(links) {
for (var i = 0; i < links.length; i++) {
browser.get(links[i]);
}
});
答案 0 :(得分:2)
您需要map()
:
element.all(by.repeater('subItem in subNav')).map(function (elm) {
return elm.element(by.css("a.link")).getAttribute("href");
}).then(function (links) {
for (var i = 0; i < links.length; i++) {
console.log(links[i]);
}
});