a
    xd                     @   sP   d dl mZ ddlmZ ddlmZ ddlmZ ddlmZ G dd deZ	d	S )
    )
WebElement   )interaction)Interaction)MouseButton)PointerInputc                       s   e Zd Zd fdd	Zejdddddddddf
ddZejfddZd d
dZd!ddZ	d"ddZ
dejfddZd#ddZdejfddZejfddZd$ddZd%edddZdd Z  ZS )&PointerActionsN   c                    s,   |st tjd}|| _|| _t | dS )z
        Args:
        - source: PointerInput instance
        - duration: override the default 250 msecs of DEFAULT_MOVE_DURATION in source
        ZmouseN)r   r   ZPOINTER_MOUSEsource	_durationsuper__init__)selfr
   duration	__class__ i/var/www/html/Ranjet/env/lib/python3.9/site-packages/selenium/webdriver/common/actions/pointer_actions.pyr      s
    zPointerActions.__init__c                 C   s$   | j d|||||||||	|
d | S )NZcreate_pointer_down)
buttonwidthheightpressuretangential_pressuretilt_xtilt_ytwistaltitude_angleazimuth_angle_button_action)r   r   r   r   r   r   r   r   r   r   r   r   r   r   pointer_down'   s    zPointerActions.pointer_downc                 C   s   | j d|d | S )NZcreate_pointer_upr   r   r   r   r   r   r   
pointer_upC   s    zPointerActions.pointer_upr   c                 C   sF   t |tstd| jj|| jt|t|||||||	|
||d | S )Nzmove_to requires a WebElementoriginr   xyr   r   r   r   r   r   r   r   r   )
isinstancer   AttributeErrorr
   create_pointer_mover   int)r   elementr&   r'   r   r   r   r   r   r   r   r   r   r   r   r   move_toG   s$    
zPointerActions.move_toc                 C   s6   | j jtj| jt|t||||||||	|
|d | S )Nr$   )r
   r*   r   POINTERr   r+   r   r&   r'   r   r   r   r   r   r   r   r   r   r   r   r   move_byj   s     zPointerActions.move_byc                 C   s4   | j jd| jt|t||||||||	|
|d | S )NZviewportr$   )r
   r*   r   r+   r/   r   r   r   move_to_location   s     zPointerActions.move_to_locationc                 C   s&   |r|  | | | | | | S N)r-   r    r#   r   r,   r   r   r   r   click   s
    


zPointerActions.clickc                 C   s   | j |tjdS )N)r,   r   )r4   r   RIGHTr   r,   r   r   r   context_click   s    zPointerActions.context_clickc                 C   s   |r|  | | j|d | S Nr!   )r-   r    r3   r   r   r   click_and_hold   s    
zPointerActions.click_and_holdc                 C   s   | j |d | S r8   )r#   r"   r   r   r   release   s    zPointerActions.releasec                 C   sB   |r|  | | tj | tj | tj | tj | S r2   )r-   r    r   LEFTr#   r6   r   r   r   double_click   s    
zPointerActions.double_click)r   c                 C   s   | j | | S r2   )r
   Zcreate_pause)r   r   r   r   r   pause   s    zPointerActions.pausec                 K   s   t | j|}|f i | | S r2   )getattrr
   )r   actionkwargsmethr   r   r   r      s    zPointerActions._button_action)Nr	   )r   r   NNNNNNNNN)	NNNNNNNNN)	NNNNNNNNN)N)N)r   )__name__
__module____qualname__r   r   r;   r    r#   r-   r0   r1   r4   r7   r9   r:   r<   floatr=   r   __classcell__r   r   r   r   r      sh   
           
'         
#         


	r   N)
Z$selenium.webdriver.remote.webelementr    r   r   Zmouse_buttonr   Zpointer_inputr   r   r   r   r   r   <module>   s
   