2

我敢肯定这是一个简单的,但我的眼睛慢慢死在我身上。

基本上,有没有办法在中继器中获取元素?例如,我在转发器中有一堆锚,但是附加到锚的类是通用的,所以类似于:

<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的地方-量角器单击元素数组)

这就是我的想法......任何帮助将不胜感激:

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]);
        }
    });
4

1 回答 1

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]);
    }
});
于 2015-05-13T21:40:26.097 回答