Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何链接'element'和'element.all`?_Javascript_Selenium_Protractor - Fatal编程技术网

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

Javascript 如何链接'element'和'element.all`?,javascript,selenium,protractor,Javascript,Selenium,Protractor,问题与此非常相似:我有ng repeat,其中有两个divs,上面有ng if,因此只显示一个div。ng repeat中的每个div具有相同的类login\u cell-link 我需要检查这个divs中的值,所以我使用 element.all(by.repeater('item in array')).then( allElements => { allElements[i].element(by.className('login__cell-link')).getText();

问题与此非常相似:我有
ng repeat
,其中有两个
div
s,上面有
ng if
,因此只显示一个
div
ng repeat
中的每个
div
具有相同的类
login\u cell-link

我需要检查这个
div
s中的值,所以我使用

element.all(by.repeater('item in array')).then( allElements => {
  allElements[i].element(by.className('login__cell-link')).getText();
});
问题是警告:

警告-通过(css选择器、.login\u cell-link)为定位器找到多个元素-将使用第一个结果

这个答案说使用:
element.all(by.css(“ul.nav按钮”)).first()

但我得到了一个错误:

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

我如何链接
元素
元素。全部
,或者在这种情况下是否有更好的解决方案来检查一个
div
?谢谢。

链接时使用
.all()
而不是
.element.all()

allElements[i].all(by.className('login__cell-link')).first().getText();
顺便说一句,您不需要在这里明确地解决承诺,而且可以一路将其链接起来:

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

无耻的自我推销:如果你想尽早发现这种错误,你可以使用
ESLint
静态代码分析工具和
ESLint插件量角器

谢谢,它工作得很好。在最后一部分——在我的代码中,我有一个包装器函数和一个迭代器,用于检查
allegents.length
divs,这只是代码的较小版本,这就是我以这种方式解析承诺的原因。再次感谢你的帮助!