Ruby:以优雅的方式实现额外的条件

时间:2018-01-18 17:45:40

标签: ruby

我正在使用ruby在Appium中自动执行一些测试。 我正在编写看起来有点像这样的代码

...
element_list #array filled with elements from a UI
element_list.each { |element| element.click if #certain condition is met 
}
...

我在数组element_list中搜索元素,如果满足某个条件,则单击。 现在让我们说找到该元素,但实际上我需要滚动以便点击

我想不出在这里实现这种额外条件的优雅方式。

有什么想法吗?

1 个答案:

答案 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?将返回块产生逻辑真值的第一个元素。