B
     ¸h	  ã               @   s\   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	„ d	eƒZd
S )é    )ÚCommandé   )Úinteraction)Ú
KeyActions)ÚKeyInput)ÚPointerActions)ÚPointerInputc               @   sv   e Zd Zddd„Zdd„ Zedd„ ƒZedd	„ ƒZed
d„ ƒZedd„ ƒZ	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚActionBuilderNc             C   sN   |d krt tjdƒ}|d kr&ttjƒ}||g| _t|ƒ| _t|ƒ| _	|| _
d S )NÚmouse)r   r   ZPOINTER_MOUSEr   ÚKEYÚdevicesr   Ú_key_actionr   Ú_pointer_actionÚdriver)Úselfr   r
   Zkeyboard© r   úmC:\Users\sanjo\AppData\Local\Qlobot\Launcher\ext_packages\selenium\webdriver\common\actions\action_builder.pyÚ__init__   s    



zActionBuilder.__init__c             C   s(   y| j  |¡}| j | S    Y nX d S )N)r   Úindex)r   ÚnameÚidxr   r   r   Úget_device_with%   s
    
zActionBuilder.get_device_withc             C   s   dd„ | j D ƒS )Nc             S   s   g | ]}|j tjkr|‘qS r   )Útyper   ZPOINTER)Ú.0Údevicer   r   r   ú
<listcomp>.   s    z0ActionBuilder.pointer_inputs.<locals>.<listcomp>)r   )r   r   r   r   Úpointer_inputs,   s    zActionBuilder.pointer_inputsc             C   s   dd„ | j D ƒS )Nc             S   s   g | ]}|j tjkr|‘qS r   )r   r   r   )r   r   r   r   r   r   2   s    z,ActionBuilder.key_inputs.<locals>.<listcomp>)r   )r   r   r   r   Ú
key_inputs0   s    zActionBuilder.key_inputsc             C   s   | j S )N)r   )r   r   r   r   Ú
key_action4   s    zActionBuilder.key_actionc             C   s   | j S )N)r   )r   r   r   r   Úpointer_action8   s    zActionBuilder.pointer_actionc             C   s   t |ƒ}|  |¡ |S )N)r   Ú
_add_input)r   r   Ú	new_inputr   r   r   Úadd_key_input<   s    
zActionBuilder.add_key_inputc             C   s   t ||ƒ}|  |¡ |S )N)r   r    )r   Úkindr   r!   r   r   r   Úadd_pointer_inputA   s    

zActionBuilder.add_pointer_inputc             C   sJ   dg i}x,| j D ]"}| ¡ }|d r|d  |¡ qW | j tj|¡ d S )NÚactions)r   ÚencodeÚappendr   Úexecuter   ÚW3C_ACTIONS)r   Úencr   Úencodedr   r   r   ÚperformF   s    zActionBuilder.performc             C   s   | j  tj¡ dS )zN
            Clears actions that are already stored on the remote end
        N)r   r(   r   ÚW3C_CLEAR_ACTIONS)r   r   r   r   Úclear_actionsN   s    zActionBuilder.clear_actionsc             C   s   | j  |¡ d S )N)r   r'   )r   Úinputr   r   r   r    T   s    zActionBuilder._add_input)NN)Ú__name__Ú
__module__Ú__qualname__r   r   Úpropertyr   r   r   r   r"   r$   r,   r.   r    r   r   r   r   r	      s   

r	   N)Ú!selenium.webdriver.remote.commandr   Ú r   Zkey_actionsr   Z	key_inputr   Zpointer_actionsr   Zpointer_inputr   Úobjectr	   r   r   r   r   Ú<module>   s   