code: public WebElement findElement() {
          if (cachedElement != null && shouldCache) {
              return cachedElement;
          }
  
          By bySearching = getBy(this.by, searchContext);
          try {
              WebElement result =  waitFor(() ->
                      searchContext.findElement(bySearching));
              if (shouldCache) {
                  cachedElement = result;
              }
              return result;
          } catch (TimeoutException | StaleElementReferenceException e) {
              throw new NoSuchElementException(format(exceptionMessageIfElementNotFound, bySearching.toString()), e);
          }
      }
docs: Find the element.