在 Protractor 的中继器中检索元素
Retrieve element within repeater in Protractor
我确定这是一个简单的问题,但我的眼睛慢慢地死在我身上。
基本上,有没有办法在转发器中获取元素?例如,我在中继器中有一堆锚点,但是附加到锚点的 class 是通用的,所以类似于:
<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()
,但不完全确定我可以在此处应用什么功能来仅检索所需的锚点/href(这实际上与另一个问题有关,可以在此处找到我映射的地方hrefs - )
这就是我的想法...任何帮助将不胜感激:
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]);
}
});
你需要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]);
}
});
我确定这是一个简单的问题,但我的眼睛慢慢地死在我身上。
基本上,有没有办法在转发器中获取元素?例如,我在中继器中有一堆锚点,但是附加到锚点的 class 是通用的,所以类似于:
<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()
,但不完全确定我可以在此处应用什么功能来仅检索所需的锚点/href(这实际上与另一个问题有关,可以在此处找到我映射的地方hrefs -
这就是我的想法...任何帮助将不胜感激:
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]);
}
});
你需要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]);
}
});