
    ,hw                     b    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 ddl	m
Z
  G d d	e      Zy
)    )Optional)
WebElement   )interaction)Interaction)MouseButton)PointerInputc            
           e Zd Zddee   def fdZej                  dddddddddf
dZ	ej                  fdZ
	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 dd	Zdej                  fd
ee   fdZdd
ee   fdZdej                  fd
ee   fdZej                  fdZdd
ee   fdZddefdZd Z xZS )PointerActionsNsourcedurationc                 x    |st        t        j                  d      }|| _        || _        t
        |   |       y)z
        Args:
        - source: PointerInput instance
        - duration: override the default 250 msecs of DEFAULT_MOVE_DURATION in source
        mouseN)r	   r   POINTER_MOUSEr   	_durationsuper__init__)selfr   r   	__class__s      s/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/selenium/webdriver/common/actions/pointer_actions.pyr   zPointerActions.__init__   s5     !+";";WEF!     c                 >    | j                  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#   s              r   pointer_downzPointerActions.pointer_down(   s?     	! 3)' 	 	
 r   c                 ,    | j                  d|       | S )Ncreate_pointer_upr   r$   r   r   s     r   
pointer_upzPointerActions.pointer_upD   s    /?r   c                     t        |t              st        d      | j                  j	                  || j
                  t        |      t        |      ||||||	|
||       | 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/   r0   r   r   r   r   r   r    r!   r"   r#   s                r   move_tozPointerActions.move_toH   sk     ':. !@AA''^^!f!f 3)' 	( 	
 r   c                     | j                   j                  t        j                  | j                  t        |      t        |      |||||||	|
|       | S )Nr-   )r   r3   r   POINTERr   r4   r   r/   r0   r   r   r   r   r   r    r!   r"   r#   s               r   move_byzPointerActions.move_byk   s[     	''&&^^!f!f 3)' 	( 	
 r   c                     | j                   j                  d| j                  t        |      t        |      |||||||	|
|       | S )Nviewportr-   )r   r3   r   r4   r9   s               r   move_to_locationzPointerActions.move_to_location   sU     	''^^!f!f 3)' 	( 	
 r   r5   c                 p    |r| j                  |       | j                  |       | j                  |       | S N)r6   r&   r+   r   r5   r   s      r   clickzPointerActions.click   s0    LL!&!r   c                 D    | j                  |t        j                        S )N)r5   r   )rA   r   RIGHTr   r5   s     r   context_clickzPointerActions.context_click   s    zz'+2C2CzDDr   c                 P    |r| j                  |       | j                  |       | S Nr)   )r6   r&   r@   s      r   click_and_holdzPointerActions.click_and_hold   s'    LL!(r   c                 *    | j                  |       | S rG   )r+   r*   s     r   releasezPointerActions.release   s    v&r   c                 $   |r| j                  |       | j                  t        j                         | j	                  t        j                         | j                  t        j                         | j	                  t        j                         | S r?   )r6   r&   r   LEFTr+   rD   s     r   double_clickzPointerActions.double_click   sb    LL!+**+(()+**+(()r   c                 <    | j                   j                  |       | S r?   )r   create_pause)r   r   s     r   pausezPointerActions.pause   s      *r   c                 B    t        | j                  |      } |di | | S )N )getattrr   )r   actionkwargsmeths       r   r%   zPointerActions._button_action   s     t{{F+vr   )N   )r   r   NNNNNNNNN)	NNNNNNNNNr?   )r   )__name__
__module____qualname__r   r	   r4   r   r   rL   r&   r+   r6   r:   r=   r   rA   rE   rH   rJ   rM   floatrP   r%   __classcell__)r   s   @r   r   r      sF   
!x5 
! 
!  8 !, 0 0  
 !N  F  > 59AQAQ Xj1 EXj%9 E >B+JZJZ hz&:  )-- HZ$8 e r   r   N)typingr   $selenium.webdriver.remote.webelementr    r   r   mouse_buttonr   pointer_inputr	   r   rR   r   r   <module>rb      s'   "  ;  $ % 'r[ rr   