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リピーター内のアンカーのみを取得します (さらに重要なのは、各アンカーに対応する href です)。

私は考えてfilter()いましたが、ここで必要なアンカー/hrefのみを取得するためにどの関数を適用できるか完全にはわかりません(これは実際には、ここでhrefをマッピングしている場所で見つけることができる別の質問に関連しています-要素の配列をクリックする分度器)

これは私が考えていることです...どんな助けもいただければ幸いです:

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 に答える