# File lib/selenium/webdriver/common/wait.rb, line 30 def until(&blk) end_time = Time.now + @timeout last_error = nil until Time.now > end_time begin result = yield return result if result rescue Error::NoSuchElementError => last_error # swallowed end sleep @interval end if @message msg = @message.dup else msg = "timed out after #{@timeout} seconds" end msg << " (#{last_error.message})}" if last_error raise Error::TimeOutError, msg end