Args:
        driver (selenium webdriver): Selenium webdriver object
        locator_list (:obj: `list` of :obj: `str`): List of CSS selector strings
        elem_type (Selenium By types): Selenium By type (i.e. By.CSS_SELECTOR)
        timeout (int): Number of seconds to wait before timing out

    Returns:
        Selenium Element

    Raises:
        TimeoutException: Raised if no elements are found within the TIMEOUT

def find_one(driver, locator_list, elem_type=CSS, timeout=TIMEOUT):
    """
    Args:
        driver (selenium webdriver): Selenium webdriver object
        locator_list (:obj: `list` of :obj: `str`): List of CSS selector strings
        elem_type (Selenium By types): Selenium By type (i.e. By.CSS_SELECTOR)
        timeout (int): Number of seconds to wait before timing out

    Returns:
        Selenium Element

    Raises:
        TimeoutException: Raised if no elements are found within the TIMEOUT
    """
    def _find_one(driver):
        """ Expected Condition to find and return first located element """
        finders = {
            CLASS_NAME: driver.find_elements_by_class_name,
            CSS: driver.find_elements_by_css_selector,
            ID: driver.find_elements_by_id,
            LINK: driver.find_elements_by_link_text,
            NAME: driver.find_elements_by_name,
            PARTIAL_LINK: driver.find_elements_by_partial_link_text,
            TAG: driver.find_elements_by_tag_name,
            XPATH: driver.find_elements_by_xpath
        }

        elems = [finders[elem_type](loc) for loc in locator_list]

        if any([len(elem_list) > 0 for elem_list in elems]):
            return elems
        else:
            return False

    raw_results = WebDriverWait(driver, timeout).until(_find_one)

    # Pull out any found elements from lists
    results = [elem for elem_list in raw_results for elem in elem_list]

    return results.pop() if len(results) == 1 else results