等待元素,如果超时则不会引发异常

Mic*_*elR 3 ruby watir watir-webdriver

我知道该方法Element#wait_until_present(t),但是如果此方法超时,则会引发timeOut异常。

有没有一种方法可以等待t几秒钟,然后在元素存在时返回true,否则返回false?

我知道可以通过一个简单的begin..rescue..end语句来完成,但是我正在寻找不使用异常的东西。

Jar*_*man 5

您可以这样编写一个简写的rescue子句:

element_present = browser.element.wait_until_present rescue false
puts "element not present" unless element_present
Run Code Online (Sandbox Code Playgroud)

但是,这确实会带来false任何价值Exception,而不仅仅是TimeoutError。我仍然更喜欢使用它,因为如果有的Exception话,那么假设该元素不存在会更安全。