def find_by(
    self,
    finder,
    finder_kwargs=None,
    original_find: Optional[str] = None,
    original_query: Optional[str] = None,
    wait_time: Optional[int] = None,
):
    """Wrapper for finding elements.

    Must be attached to a class.

    Returns:
        ElementList
    """
    find_by = original_find or finder_kwargs["by"]
    query = original_query or finder_kwargs.get("value")

    elements = _retry(
        _safe_find,
        [finder],
        {"finder_kwargs": finder_kwargs},
        timeout=self.wait_time,
    )

    elem_list = [self.element_class(elem, self, finder_kwargs) for elem in elements]
    return ElementList(elem_list, find_by=find_by, query=query)
Wrapper for finding elements.

    Must be attached to a class.

    Returns:
        ElementList
    
splinter/driver/webdriver/__init__.py