o
    ѷ6ib                     @   s^   d dl mZ erd dl mZ G dd deddZneeef ZG dd dZG d	d
 d
ZdS )    )TYPE_CHECKING)	TypedDictc                   @   s&   e Zd ZU eed< eed< eed< dS )JSONTimeoutsimplicitpageLoadscriptN)__name__
__module____qualname__int__annotations__ r   r   g/var/www/hoanhtaovolam_webdjango/env/lib/python3.10/site-packages/selenium/webdriver/common/timeouts.pyr      s   
 r   F)totalc                   @   s0   e Zd ZdZdd ZdefddZd
dd	ZdS )_TimeoutsDescriptorzGet or set the value of the attributes listed below.

    _implicit_wait _page_load _script

    This does not set the value on the remote end.
    c                 C   s
   || _ d S )N)name)selfr   r   r   r   __init__(   s   
z_TimeoutsDescriptor.__init__returnc                 C   s   t || jd S )N  )getattrr   )r   objclsr   r   r   __get__+   s   z_TimeoutsDescriptor.__get__Nc                 C   s    t |d|}t|| j| d S )N_convert)r   setattrr   )r   r   valueconverted_valuer   r   r   __set__.   s   z_TimeoutsDescriptor.__set__)r   N)r   r	   r
   __doc__r   floatr   r   r   r   r   r   r       s
    r   c                	   @   sf   e Zd ZddedededdfddZed	Z	 ed
Z	 edZ	 dede	fddZ
defddZdS )Timeoutsr   implicit_wait	page_loadr   r   Nc                 C   s(   |  || _|  || _|  || _dS )a  Create a new Timeouts object.

        This implements https://w3c.github.io/webdriver/#timeouts.

        Args:
            implicit_wait: Number of seconds to wait when searching for elements
                before throwing an error.
            page_load: Number of seconds to wait for a page load to complete
                before throwing an error.
            script: Number of seconds to wait for an asynchronous script to
                finish execution before throwing an error.
        N)r   _implicit_wait
_page_load_script)r   r"   r#   r   r   r   r   r   4   s   zTimeouts.__init__r$   r%   r&   timeoutc                 C   s&   t |ttfrtt|d S td)Nr   z&Timeouts can only be an int or a float)
isinstancer   r    	TypeError)r   r'   r   r   r   r   X   s   zTimeouts._convertc                 C   s8   i }| j r
| j |d< | jr| j|d< | jr| j|d< |S )Nr   r   r   )r$   r%   r&   )r   timeoutsr   r   r   _to_json]   s   


zTimeouts._to_json)r   r   r   )r   r	   r
   r    r   r   r"   r#   r   r   r   r   r+   r   r   r   r   r!   3   s    r!   N)	typingr   r   r   dictstrr   r   r!   r   r   r   r   <module>   s   