a
    5ñ»j¨)  ã                   @   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 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 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 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 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 d dlm Z  d d lm!Z! d d!lm"Z" G d"d#„ d#ƒZ#G d$d%„ d%ƒZ$G d&d'„ d'ƒZ%d(S ))é    )ÚAny)ÚDict)ÚType)ÚDetachedShadowRootException)Ú ElementClickInterceptedException)ÚElementNotInteractableException)ÚElementNotSelectableException)ÚElementNotVisibleException)ÚImeActivationFailedException)ÚImeNotAvailableException)ÚInsecureCertificateException)ÚInvalidArgumentException)ÚInvalidCookieDomainException)ÚInvalidCoordinatesException)ÚInvalidElementStateException)ÚInvalidSelectorException)ÚInvalidSessionIdException)ÚJavascriptException)ÚMoveTargetOutOfBoundsException)ÚNoAlertPresentException)ÚNoSuchCookieException)ÚNoSuchElementException)ÚNoSuchFrameException)ÚNoSuchShadowRootException)ÚNoSuchWindowException)ÚScreenshotException)ÚSessionNotCreatedException)ÚStaleElementReferenceException)ÚTimeoutException)ÚUnableToSetCookieException)ÚUnexpectedAlertPresentException)ÚUnknownMethodException)ÚWebDriverExceptionc                   @   s”   e Zd ZdZeZeZeZ	e
ZeZeZeZeZeZeZeZeZeZeZe Z!eZ"e#Z$e%Z&e'Z(e)Z*e+Z,e'Z-e'Z.e/Z0e1Z2e3Z4e5Z6e7Z8e9Z:e;Z<e=Z>e?Z@eAZBdS )ÚExceptionMappingz 
    :Maps each errorcode in ErrorCode object to corresponding exception
    Please refer to https://www.w3.org/TR/webdriver2/#errors for w3c specification
    N)CÚ__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚNO_SUCH_ELEMENTr   ÚNO_SUCH_FRAMEr   ÚNO_SUCH_SHADOW_ROOTr   ÚSTALE_ELEMENT_REFERENCEr	   ÚELEMENT_NOT_VISIBLEr   ÚINVALID_ELEMENT_STATEr"   ÚUNKNOWN_ERRORr   ÚELEMENT_IS_NOT_SELECTABLEr   ÚJAVASCRIPT_ERRORr   ÚTIMEOUTr   ÚNO_SUCH_WINDOWr   ÚINVALID_COOKIE_DOMAINr   ÚUNABLE_TO_SET_COOKIEr    ÚUNEXPECTED_ALERT_OPENr   ÚNO_ALERT_OPENÚSCRIPT_TIMEOUTr   ÚIME_NOT_AVAILABLEr
   ÚIME_ENGINE_ACTIVATION_FAILEDr   ÚINVALID_SELECTORr   ÚSESSION_NOT_CREATEDr   ÚMOVE_TARGET_OUT_OF_BOUNDSÚINVALID_XPATH_SELECTORÚ#INVALID_XPATH_SELECTOR_RETURN_TYPERr   ÚELEMENT_NOT_INTERACTABLEr   ÚINSECURE_CERTIFICATEr   ÚINVALID_ARGUMENTr   ÚINVALID_COORDINATESr   ÚINVALID_SESSION_IDr   ÚNO_SUCH_COOKIEr   ÚUNABLE_TO_CAPTURE_SCREENr   ÚELEMENT_CLICK_INTERCEPTEDr!   ÚUNKNOWN_METHODr   ÚDETACHED_SHADOW_ROOT© rI   rI   úLE:\soccer\ml_env\Lib\site-packages\selenium/webdriver/remote/errorhandler.pyr#   6   sD   r#   c                   @   s2  e Zd ZdZdZddgZddgZdgZdd	gZd
dgZ	ddgZ
ddgZddgZddgZddgZddgZddgZddgZddgZddgZd d!gZd"d#gZd$d%gZd&d'gZd(d)gZd*d+gZd,dgZd-d.gZd/d0gZd1dgZd2dgZd3d4gZd5gZ d6d7gZ!d8gZ"d9gZ#d:d;gZ$d<d=gZ%d>d?gZ&d@gZ'dAdBgZ(dCdDgZ)dES )FÚ	ErrorCodez3Error codes defined in the WebDriver wire protocol.r   é   zno such elementé   zno such framezno such shadow rooté	   zunknown commandé
   zstale element referenceé   zelement not visibleé   zinvalid element stateé   zunknown erroré   zelement not selectableé   zjavascript erroré   zinvalid selectoré   Útimeouté   zno such windowé   zinvalid cookie domainé   zunable to set cookieé   zunexpected alert opené   zno such alerté   zscript timeouté   zinvalid element coordinatesé   zime not availableé   zime engine activation failedé    é!   zsession not createdé"   zmove target out of boundsé3   é4   é<   zelement not interactablezinsecure certificateé=   zinvalid argumentzinvalid coordinateszinvalid session idé>   zno such cookieé?   zunable to capture screené@   zelement click interceptedzunknown method exceptionéA   zdetached shadow rooti•  zunsupported operationN)*r$   r%   r&   r'   ÚSUCCESSr(   r)   r*   ZUNKNOWN_COMMANDr+   r,   r-   r.   r/   r0   ZXPATH_LOOKUP_ERRORr1   r2   r3   r4   r5   r6   r7   ZINVALID_ELEMENT_COORDINATESr8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   ÚMETHOD_NOT_ALLOWEDrI   rI   rI   rJ   rK   _   sN   rK   c                   @   s(   e Zd ZdZeeef ddœdd„ZdS )ÚErrorHandlerz0Handles errors returned by the WebDriver server.N)ÚresponseÚreturnc                 C   sÔ  |  dd¡}|r|tjkrdS d}|  dd¡}|  dd¡}d}t|tƒrø|  dd¡}|røt|tƒrøddl}zz| |¡}t|ƒdkrŠ|d }|  d	d¡}|sÖ|  dtj	¡}|  d¡pº|  d¡}t|tƒsâ|}|  d¡}n|  dd¡}W n t
yö   Y n0 tƒ }	d
d„ t|	ƒD ƒ}
|
D ]8}tt|ƒ}t|tƒ�r||v �rtt|tƒ} �qR�qt}|�s`|d }t|tƒ�rt||ƒ‚|dk�r�d|v �r�|d }d}d|v �r¦|d }d}|  d¡�p¾|  d¡}|�rvt|tƒ�rÞ| d¡}n˜g }z~|D ]t}|  dd¡}|  dd¡}|�r|› d|› �}|  dd¡}d|v �r@|d › d|› �}d}|||f }| |¡ �qèW n t�yt   Y n0 |tk�rÄd}d|v �rž|d   d¡}nd|v �r¶|d   d¡}|||||ƒ‚||||ƒ‚dS )a	  Checks that a JSON response from the WebDriver does not have an
        error.

        :Args:
         - response - The JSON response from the WebDriver server as a dictionary
           object.

        :Raises: If the response contains an error message.
        ÚstatusNÚmessageÚ ÚscreenÚvaluer   é   Úerrorc                 S   s   g | ]}|  d ¡s|‘qS )Ú__)Ú
startswith)Ú.0ÚitemrI   rI   rJ   Ú
<listcomp>¸   ó    z/ErrorHandler.check_response.<locals>.<listcomp>Z
stackTraceÚ
stacktraceÚ
Z
lineNumberÚfileNamez<anonymous>ú:Ú
methodNameZ	classNameÚ.z    at %s (%s)ÚdataÚtextÚalert)ÚgetrK   rl   Ú
isinstanceÚintÚstrÚjsonÚloadsÚlenr.   Ú
ValueErrorÚdirÚgetattrÚlistr#   r"   ÚsplitÚappendÚ	TypeErrorr    )Úselfro   rq   ru   rr   rt   r~   Z
value_jsonr‹   ÚeZerror_codesZ
error_codeÚ
error_infoZexception_classZst_valueÚframeÚlineÚfileÚmethÚmsgZ
alert_textrI   rI   rJ   Úcheck_response�   sŒ    










zErrorHandler.check_response)r$   r%   r&   r'   r   rŠ   r   r�   rI   rI   rI   rJ   rn   �   s   rn   N)&Útypingr   r   r   Zselenium.common.exceptionsr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   rK   rn   rI   rI   rI   rJ   Ú<module>   sF   ).