寻找获取数组中第一个匹配元素的索引

Looking to get index of first matched element within array

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

以下图书列表

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

在这些行中,有些行将包含以下元素

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

我想做以下事情

  1. 查找下载按钮的元素(超过1个)
  2. 获取第一个下载按钮的索引位置(这样我可以稍后使用 .get(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' 的方法。

谢谢。

我认为你不需要在中继器内部使用元素positions/indexes进行操作。相反,通过链接 elementelement.all:

使用 context/element 特定元素搜索来查找下载按钮并操作当前行
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'));