
    ,h.                     J    d Z ddlmZ ddlmZ ddlmZ  G d d      Zed   Zy)	zThe By implementation.    )Dict)Literal)Optionalc                       e Zd ZU dZdZdZdZdZdZdZ	dZ
d	Zi Zeeef   ed
<   edededdfd       Zededee   fd       Zedd       Zy)Bya  Set of supported locator strategies.

    ID:
    --
    Select the element by its ID.

    >>> element = driver.find_element(By.ID, 'myElement')

    XPATH:
    ------
    Select the element via XPATH.
        - absolute path
        - relative path

    >>> element = driver.find_element(By.XPATH, '//html/body/div')

    LINK_TEXT:
    ----------
    Select the link element having the exact text.

    >>> element = driver.find_element(By.LINK_TEXT, 'myLink')

    PARTIAL_LINK_TEXT:
    ------------------
    Select the link element having the partial text.

    >>> element = driver.find_element(By.PARTIAL_LINK_TEXT, 'my')

    NAME:
    ----
    Select the element by its name attribute.

    >>> element = driver.find_element(By.NAME, 'myElement')

    TAG_NAME:
    --------
    Select the element by its tag name.

    >>> element = driver.find_element(By.TAG_NAME, 'div')

    CLASS_NAME:
    -----------
    Select the element by its class name.

    >>> element = driver.find_element(By.CLASS_NAME, 'myElement')

    CSS_SELECTOR:
    -------------
    Select the element by its CSS selector.

    >>> element = driver.find_element(By.CSS_SELECTOR, 'div.myElement')
    idxpath	link textpartial link textnametag name
class namecss selector_custom_findersstrategyreturnNc                 "    || j                   |<   y N)r   )clsr   r   s      ^/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/selenium/webdriver/common/by.pyregister_custom_finderzBy.register_custom_finderY   s    $,D!    c                 r    | j                   j                  |      xs t        | |j                         d       S r   )r   getgetattrupper)r   r   s     r   
get_finderzBy.get_finder]   s-    ""&&t,PTZZ\40PPr   c                 8    | j                   j                          y r   )r   clear)r   s    r   clear_custom_finderszBy.clear_custom_findersa   s    !!#r   )r   N)__name__
__module____qualname____doc__IDXPATH	LINK_TEXTPARTIAL_LINK_TEXTNAMETAG_NAME
CLASS_NAMECSS_SELECTORr   r   str__annotations__classmethodr   r   r   r     r   r   r   r      s    3j 
BEI+DHJ!L&(OT#s(^(-# - - - - Qc Qhsm Q Q $ $r   r   )r   r	   r
   r   r   r   r   r   N)r$   typingr   r   r   r   ByTyper0   r   r   <module>r3      s-   "    K$ K$\ 
r	sr   