o
    M,öhC  ã                   @   s.   d Z ddlmZmZ ed ZG dd„ dƒZdS )zThe By implementation.é    )ÚLiteralÚOptional)ÚidÚxpathú	link textúpartial link textÚnameútag nameú
class nameúcss selectorc                   @   sÈ   e Zd ZU dZdZeed< dZeed< dZeed< dZ	eed	< d
Z
eed< dZeed< dZeed< dZeed< i Zeeef ed< ed
ededdfdd„ƒZed
edee fdd„ƒZeddd„ƒZdS )Ú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")
    r   ÚIDr   ÚXPATHr   Ú	LINK_TEXTr   ÚPARTIAL_LINK_TEXTr   ÚNAMEr	   ÚTAG_NAMEr
   Ú
CLASS_NAMEr   ÚCSS_SELECTORÚ_custom_findersÚstrategyÚreturnNc                 C   s   || j |< d S ©N)r   )Úclsr   r   © r   úh/var/www/www-root/data/www/bot.pdev.uz/venv/lib/python3.10/site-packages/selenium/webdriver/common/by.pyÚregister_custom_finderY   ó   zBy.register_custom_finderc                 C   s   | j  |¡pt| | ¡ d ƒS r   )r   ÚgetÚgetattrÚupper)r   r   r   r   r   Ú
get_finder]   s   zBy.get_finderc                 C   s   | j  ¡  d S r   )r   Úclear)r   r   r   r   Úclear_custom_findersa   r   zBy.clear_custom_finders)r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚByTypeÚ__annotations__r   r   r   r   r   r   r   r   ÚdictÚstrÚclassmethodr   r   r!   r#   r   r   r   r   r      s"   
 5r   N)r'   Útypingr   r   r(   r   r   r   r   r   Ú<module>   s   