a
    RýIh³%  ã                   @   sÂ   d dl mZmZmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!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   ú`/var/www/html/venv_bot_3.9/lib/python3.9/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rd|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>   s   €").