module Appium::Core::Wait
def message_for(timeout, message)
def message_for(timeout, message) msg = "timed out after #{timeout} seconds" msg += ", #{message}" if message msg end
def until(timeout: DEFAULT_TIMEOUT, interval: DEFAULT_INTERVAL, message: nil, ignored: nil, object: nil)
-
object
(Object, NilClass
) -- Object to evaluate block against -
ignored
(Array, Exception
) -- Exceptions to ignore while polling (default: Exception) -
message
(String
) -- Exception message if timed out. -
interval
(Integer
) -- Seconds to sleep between polls. Set default by +appium_wait_interval+ (0.5). -
timeout
(Integer
) -- Seconds to wait before timing out. Set default by +appium_wait_timeout+ (30).
def until(timeout: DEFAULT_TIMEOUT, interval: DEFAULT_INTERVAL, message: nil, ignored: nil, object: nil) ignored = Array(ignored || ::Exception) last_error = nil timer = Wait::Timer.new(timeout) until timer.timeout? begin return yield(object) rescue ::Errno::ECONNREFUSED => e raise e rescue *ignored => last_error # swallowed end sleep interval end msg = message_for timeout, message msg += " (#{last_error.message})" if last_error raise TimeoutError, msg end
def until_true(timeout: DEFAULT_TIMEOUT, interval: DEFAULT_INTERVAL, message: nil, ignored: nil, object: nil)
-
object
(Object, NilClass
) -- Object to evaluate block against -
ignored
(Array, Exception
) -- Exceptions to ignore while polling (default: Exception) -
message
(String
) -- Exception message if timed out. -
interval
(Integer
) -- Seconds to sleep between polls. Set default by +appium_wait_interval+ (0.5). -
timeout
(Integer
) -- Seconds to wait before timing out. Set default by +appium_wait_timeout+ (30).
def until_true(timeout: DEFAULT_TIMEOUT, interval: DEFAULT_INTERVAL, message: nil, ignored: nil, object: nil) ignored = Array(ignored || ::Exception) last_error = nil timer = Wait::Timer.new(timeout) until timer.timeout? begin result = yield(object) return result if result rescue ::Errno::ECONNREFUSED => e raise e rescue *ignored => last_error # swallowed end sleep interval end msg = message_for timeout, message msg += " (#{last_error.message})" if last_error raise TimeoutError, msg end