在空手道中对包含重复元素的表执行通配符操作? [复制]

2024-02-28

我遇到了这样一种情况,需要在断言用户输入后单击图标。如果有一些唯一标识符,事情就非常简单,例如使用:rightOf('{}UniqueIdentifier').find('i').click()达到了目的。 也可以很好地工作:scroll('{}UniqueIdentifier').parent.children[4].click()

但是,如果表包含重复值,则无法找到唯一可搜索和单击的值。其想法是匹配整个行文本,其中最后一个元素是需要单击的图标或任何其他适合此的方法?

Table looks like this:-
enter image description here

需要单击三点图标 - A2、P2、2,已解决。如何使用通配符定位器来实现这一点?我尝试创建一个元素列表并将其与用户输入列表进行匹配,但失败了。

任何帮助,将不胜感激。谢谢!


首先你应该适应locateAll()。它将返回一个数组Element对象。之后有很多可能的方法可以循环并找到你想要的东西。

另请注意,有一个“locateAll()带过滤器”:https://github.com/intuit/karate/tree/master/karate-core#locateall-with-filter https://github.com/intuit/karate/tree/master/karate-core#locateall-with-filter

由于您没有提供任何 HTML,我将不得不猜测。并注意x下面是一个Element你甚至可以打电话locate() on it.

* def filter = function(x){ x.text.contains('Unique Identifier') }
* def list = locateAll('.grand-parent-class', filter)
* list[0].parent.children[4].click()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在空手道中对包含重复元素的表执行通配符操作? [复制] 的相关文章

随机推荐