docs: @Override
    public AndroidElement findElement(final By by) {
      if (by == null) {
        throw new IllegalArgumentException("By cannot be null.");
      }
  
      SearchContext context = getSearchContext();
      AndroidElement found = by.findElement(context);
      long timeout = getTimeout();
  
      while (found == null && (System.currentTimeMillis() < timeout)) {
        sleepQuietly(AndroidWait.DEFAULT_SLEEP_INTERVAL);
        found = by.findElement(context);
      }
      return found;
    }