我正在使用ruby在Appium中自动执行一些测试。 我正在编写看起来有点像这样的代码
...
element_list #array filled with elements from a UI
element_list.each { |element| element.click if #certain condition is met
}
...
我在数组element_list
中搜索元素,如果满足某个条件,则单击。
现在让我们说找到该元素,但实际上我需要滚动以便点击。
我想不出在这里实现这种额外条件的优雅方式。
有什么想法吗?
答案 0 :(得分:1)
点击符合某些条件的第一个元素的一般方法是使用find
方法:
let link = document.querySelector('a');
if(link!==null){
let xid = a.getAttribute('xid');
let gid = a.getAttribute('gid');
let rid = a.getAttribute('rid');
}
to_click = element_list.find do |element|
element.matches_criteria?
end
to_click&.click
方法可能会返回find
,这就是需要条件导航运算符(nil
)的原因。这样可以避免尝试点击&.
。
nil
方法只是一个例子。 matches_criteria?
将返回块产生逻辑真值的第一个元素。