code: public static <T> T waitUntil(ExpectedCondition<T> expectedCondition,
  			WebDriver driver, long timeOutInSeconds) {
  		logger.debug("BEGIN wait (timeout=" + timeOutInSeconds + "s) for "
  			+ expectedCondition);
  		T object = 
  			new WebDriverWait(driver, timeOutInSeconds)
  				.until(expectedCondition);
  		logger.debug("END wait for  " + expectedCondition);
  		return object;
  	}
docs: Generic explicit wait, taking an {@link ExpectedCondition} as a parameter.
  Times out after the given number of seconds.
  
  @param expectedCondition
  @param driver
  @param timeOutInSeconds
  @return whatever WebDriverWait#until returns
  
  @see WebDriverWait#until(com.google.common.base.Function)
  @throws TimeoutException if the timeout expires