code: protected <X> X implicitlyWaitFor(Callable<X> condition) {
      long end = System.currentTimeMillis() + OperaIntervals.IMPLICIT_WAIT.getMs();
      Exception lastException = null;
  
      do {
        X toReturn = null;
  
        try {
          toReturn = condition.call();
        } catch (Exception e) {
          lastException = e;
        }
  
        if (toReturn instanceof Boolean && !(Boolean) toReturn) {
          continue;
        }
  
        if (toReturn != null) {
          return toReturn;
        }
  
        sleep(OperaIntervals.POLL_INTERVAL.getMs());
      } while (System.currentTimeMillis() < end);
  
      if (lastException != null) {
        if (lastException instanceof RuntimeException) {
          throw (RuntimeException) lastException;
        }
  
        throw new WebDriverException(lastException);
      }
  
      return null;
    }
docs: Implicitly wait for an element to become visible.
  
  Essentially it polls the client every {@link OperaIntervals#POLL_INTERVAL} until {@link
  OperaIntervals#IMPLICIT_WAIT} is reached for callable <code>condition</code> to be true.
  
  @param condition a callable implementation
  @param <X>       computes a result, or throws an exception if unable to do so
  @return a non-null value if condition is met within implicit wait timeout, null otherwise