如何链接`element`和`element.all`?

Geo*_*rgy 4 javascript selenium protractor

问题非常类似于这个"为定位器找到多个元素"的警告:我有ng-repeat,在里面我有两个divs,ng-if在它们上面,所以只显示了一个div.每个divng-repeat都有同等的水平login__cell-link.

我需要在这个divs中检查值,所以我选择使用它们的块

element.all(by.repeater('item in array')).then( allElements => {
  allElements[i].element(by.className('login__cell-link')).getText();
});
Run Code Online (Sandbox Code Playgroud)

问题是警告:

警告 - 为定位器By(css选择器,.login__cell-link)找到多个元素 - 将使用第一个结果

这个答案/sf/answers/1992536661/说使用:element.all(by.css("ul.nav button")).first()

但我得到错误:

[TypeError:allElements [i] .element.all不是函数]

我怎么能连锁elementelement.all,或是否有更好的解决方案,以检查一个div在这种情况下?谢谢.

ale*_*cxe 10

在链接时.all()不要使用.element.all():

allElements[i].all(by.className('login__cell-link')).first().getText();
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您不需要在此明确解决承诺,并且可以将其链接到所有方式:

element
  .all(by.repeater('item in array'))
  .get(i)
  .all(by.className('login__cell-link'))
  .first()
  .getText();
Run Code Online (Sandbox Code Playgroud)

无耻的自我推销:如果你要及早发现这种错误,你可以使用ESLint静态代码分析工具一起eslint-plugin-protractorcorrect-chaining统治.