o
    ѷ6in                     @   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 )	    )interaction)Interaction)MouseButton)PointerInput)
WebElementc                
       s4  e Zd Zd!dedB def 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edB fddZd$dedB fddZdejfdedB fddZejfddZd$dedB fddZd%defddZdd  Z  ZS )&PointerActionsN   sourcedurationc                    s0   |du r
t tjd}|| _|| _t | dS )a1  Initialize a new PointerActions instance.

        Args:
            source: Optional PointerInput instance. If not provided, a default
                mouse PointerInput will be created.
            duration: Override the default 250 msecs of DEFAULT_MOVE_DURATION
                in the source.
        Nmouse)r   r   POINTER_MOUSEr	   	_durationsuper__init__)selfr	   r
   	__class__ v/var/www/hoanhtaovolam_webdjango/env/lib/python3.10/site-packages/selenium/webdriver/common/actions/pointer_actions.pyr      s
   	zPointerActions.__init__c                 C   s$   | j d|||||||||	|
d | S )N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 )Ncreate_pointer_upr   r    r   r   r   r   r   
pointer_upE   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_toI   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_byl   s    zPointerActions.move_byc                 C   s4   | j jd| jt|t||||||||	|
|d | S )Nviewportr'   )r	   r-   r   r.   r2   r   r   r   move_to_location   s    zPointerActions.move_to_locationr/   c                 C   s&   |r|  | | | | | | S N)r0   r"   r&   r   r/   r   r   r   r   click   s
   


zPointerActions.clickc                 C   s   | j |tjdS )N)r/   r   )r8   r   RIGHTr   r/   r   r   r   context_click   s   zPointerActions.context_clickc                 C   s   |r|  | | j|d | S Nr$   )r0   r"   r7   r   r   r   click_and_hold   s   
zPointerActions.click_and_holdc                 C   s   | j |d | S r<   )r&   r%   r   r   r   release      zPointerActions.releasec                 C   sB   |r|  | | tj | tj | tj | tj | S r6   )r0   r"   r   LEFTr&   r:   r   r   r   double_click   s   
zPointerActions.double_clickc                 C   s   | j | | S r6   )r	   create_pause)r   r
   r   r   r   pause   r?   zPointerActions.pausec                 K   s   t | j|}|di | | S )Nr   )getattrr	   )r   actionkwargsmethr   r   r   r!      s   zPointerActions._button_action)Nr   )r   r   NNNNNNNNN)	NNNNNNNNNr6   )r   )__name__
__module____qualname__r   r.   r   r   r@   r"   r&   r0   r3   r5   r   r8   r;   r=   r>   rA   floatrC   r!   __classcell__r   r   r   r   r      sj    

'
#
	r   N)!selenium.webdriver.common.actionsr   -selenium.webdriver.common.actions.interactionr   .selenium.webdriver.common.actions.mouse_buttonr   /selenium.webdriver.common.actions.pointer_inputr   $selenium.webdriver.remote.webelementr   r   r   r   r   r   <module>   s   