希望得到数组中第一个匹配元素的索引

时间:2015-02-26 05:19:07

标签: javascript angularjs protractor angularjs-e2e

我希望在转发器中获取匹配元素的索引位置,并希望知道如何找到。

以下书籍清单

element.all(by.repeater('books'))

在这些行中,某些行将具有元素

element(by.css('[ng-click="download"]')

我想做以下

  1. 找到下载按钮的元素(超过1个)
  2. 获取第一个下载按钮的索引位置(所以稍后我可以使用.get(3)执行特定行的其他内容)
  3. 所以我在这里尝试过。

    element.all(by.css('some-css')).first().element(by.tagName('tag-within-css')).get(index);
    element.all(by.css('some-css')).get(index).element(by.tagName('tag-within-css'));
    

    Finding Sub-Elements - Protractor locators guide

    某些错误,例如索引未定义没有' get' 的方法。

    感谢。

1 个答案:

答案 0 :(得分:1)

我认为您不需要使用转发器内的元素位置/索引进行操作。而是通过链接elementelement.all找到下载按钮并使用上下文/元素特定元素搜索来操作当前行:

var books = element.all(by.repeater('books'));

var downloadButtons = books.all(by.css('[ng-click="download"]'));
var firstDownloadButton = downloadButtons.first();

// here is how you can, for example, get the next div element to the download button  
var nextElement = firstDownloadButton.element(by.xpath('following-sibling::div'));