class Capybara::Node::Base

def synchronize(seconds = session_options.default_max_wait_time, errors: nil)

Raises:
  • (Capybara::FrozenInTime) - If the return value of `Time.now` appears stuck

Returns:
  • (Object) - The result of the given block

Parameters:
  • errors (Array) -- (driver.invalid_element_errors +
  • seconds (Integer) -- (current sessions default_max_wait_time) Maximum number of seconds to retry this block
def synchronize(seconds = session_options.default_max_wait_time, errors: nil)
  return yield if session.synchronized
  session.synchronized = true
  timer = Capybara::Helpers.timer(expire_in: seconds)
  begin
    yield
  rescue StandardError => err
    session.raise_server_error!
    raise err unless driver.wait? && catch_error?(err, errors)
    raise err if timer.expired?
    sleep(0.05)
    reload if session_options.automatic_reload
    retry
  ensure
    session.synchronized = false
  end
end