
     fw                     j    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d
S )    )Optional)
WebElement   )interaction)Interaction)MouseButton)PointerInputc            
       n    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                     |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
        mouseN)r	   r   POINTER_MOUSEr   	_durationsuper__init__)selfr   r   	__class__s      t/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/selenium/webdriver/common/actions/pointer_actions.pyr   zPointerActions.__init__   sL      	F!+";WEEF!         c                 F    |                      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(   sI     	! 3)' 	 	
 	
 	
 r   c                 4    |                      d|           | S )Ncreate_pointer_upr   r%   r   r   s     r   
pointer_upzPointerActions.pointer_upD   s!    /???r   r   c                     t          |t                    st          d          | 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   elementr0   r1   r   r   r   r   r    r!   r"   r#   r$   s                r   move_tozPointerActions.move_toH   s     ':.. 	B !@AAA''^!ff!ff 3)' 	( 	
 	
 	
 r   c                     | j                             t          j        | j        t          |          t          |          |||||||	|
|           | S )Nr.   )r   r4   r   POINTERr   r5   r   r0   r1   r   r   r   r   r    r!   r"   r#   r$   s               r   move_byzPointerActions.move_byk   sb     	''&^!ff!ff 3)' 	( 	
 	
 	
 r   c                     | j                             d| j        t          |          t          |          |||||||	|
|           | S )Nviewportr.   )r   r4   r   r5   r:   s               r   move_to_locationzPointerActions.move_to_location   s_     	''^!ff!ff 3)' 	( 	
 	
 	
 r   r6   c                     |r|                      |           |                     |           |                     |           | S N)r7   r'   r,   r   r6   r   s      r   clickzPointerActions.click   sG     	"LL!!!&!!!r   c                 D    |                      |t          j                  S )N)r6   r   )rB   r   RIGHTr   r6   s     r   context_clickzPointerActions.context_click   s    zz'+2CzDDDr   c                 `    |r|                      |           |                     |           | S Nr*   )r7   r'   rA   s      r   click_and_holdzPointerActions.click_and_hold   s8     	"LL!!!(((r   c                 2    |                      |           | S rH   )r,   r+   s     r   releasezPointerActions.release   s    v&&&r   c                 ,   |r|                      |           |                     t          j                   |                     t          j                   |                     t          j                   |                     t          j                   | S r@   )r7   r'   r   LEFTr,   rE   s     r   double_clickzPointerActions.double_click   sy     	"LL!!!+*+++()))+*+++()))r   c                 :    | j                             |           | S r@   )r   create_pause)r   r   s     r   pausezPointerActions.pause   s      ***r   c                 @    t          | j        |          } |di | | S )N )getattrr   )r   actionkwargsmeths       r   r&   zPointerActions._button_action   s)    t{F++vr   )Nr   )r   r   NNNNNNNNN)	NNNNNNNNNr@   )r   )__name__
__module____qualname__r   r	   r5   r   r   rM   r'   r,   r7   r;   r>   r   rB   rF   rI   rK   rN   floatrQ   r&   __classcell__)r   s   @r   r   r      s=       
! 
!x5 
! 
! 
! 
! 
! 
! 
!     8 !, 0     
 ! ! ! !N     F     > 59AQ  Xj1    E EXj%9 E E E E >B+JZ  hz&:     )-     HZ$8     e          r   r   N)typingr   $selenium.webdriver.remote.webelementr    r   r   mouse_buttonr   pointer_inputr	   r   rS   r   r   <module>rb      s   "       ; ; ; ; ; ;       $ $ $ $ $ $ % % % % % % ' ' ' ' ' 'r r r r r[ r r r r rr   