gpt4 book ai didi

javascript - Protractor 定位器 by.repeater 使用 'contains' 而不是 'equals'

转载 作者:行者123 更新时间:2023-11-29 19:35:06 24 4
gpt4 key购买 nike

在我的页面中有 2 个 ng-repeat,“小部件中的小部件”,“小部件在 widgetsOnPage 中”。当我尝试通过 element.all(by.repeater('widget in widgets')); 定位元素时,它会从两个重复项中找到元素。

我也尝试在 Protractor 示例测试 ("\node_modules\protractor\example\example_spec.js") 上将“todo in todos”转发器更改为:

todoList = element.all(by.repeater('to'));

测试通过。

  • 如何找到与字符串完全相同的重复?
  • 该行为是 Protractor 的缺陷还是功能?

谢谢。

最佳答案

by.repeater 定位器基于findRepeaterElement() 函数。根据它的 implementation ,它正在搜索在 ng-repeat 属性值内传递的转发器子字符串,请参阅循环内的此 indexOf 调用:

for (var i = 0; i < repeatElems.length; ++i) {
if (repeatElems[i].getAttribute(attr).indexOf(repeater) != -1) {
rows.push(repeatElems[i]);
}
}

由于 widget in widgetswidget in widgetsOnPage 的子串,因此存在匹配。


由于行为有点令人惊讶,我会向 protractor github issue tracker 提交问题.

关于javascript - Protractor 定位器 by.repeater 使用 'contains' 而不是 'equals',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25533829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com