o
    Vh(                     @   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! G d!d" d"Z"G d#d$ d$Z#G d%d& d&Z$d'S )(    )Any)Dict)Type) 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@d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)A__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_METHOD rG   rG   c/home/air/yokohama/back/venv/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.pyr"   5   sD    r"   c                   @   s*  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(dCS )D	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 bounds3   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 exceptioni  zunsupported operationN))r#   r$   r%   r&   SUCCESSr'   r(   r)   UNKNOWN_COMMANDr*   r+   r,   r-   r.   r/   XPATH_LOOKUP_ERRORr0   r1   r2   r3   r4   r5   r6   INVALID_ELEMENT_COORDINATESr7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   METHOD_NOT_ALLOWEDrG   rG   rG   rH   rI   ]   sN    rI   c                   @   s*   e Zd ZdZdeeef ddfddZdS )ErrorHandlerz0Handles errors returned by the WebDriver server.responsereturnNc                 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}z=||}t|dkrE|d }| d	d}|sk| dtj	}| dp]| d}t|tsj|}| d}n| dd}W n	 t
y{   Y nw t }	d
d t|	D }
|
D ]}tt|}t|tr||v rtt|t} nqt}|s|d }t|tr|||dkrd|v r|d }d}d|v r|d }d}| dp| d}|r/t|tr|d}nKg }z>|D ]9}| dd}| dd}|r| d| }| dd}d|v r|d  d| }d}|||f }|| qW n
 ty.   Y nw |tkrVd}d|v rC|d  d}nd|v rO|d  d}|||||||||)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itemrG   rG   rH   
<listcomp>   s    z/ErrorHandler.check_response.<locals>.<listcomp>
stackTrace
stacktrace

lineNumberfileNamez<anonymous>:
methodName	className.z    at %s (%s)datatextalert)getrI   ri   
isinstanceintstrjsonloadslenr-   
ValueErrordirgetattrlistr"   r!   splitappend	TypeErrorr   )selfro   rq   ru   rr   rt   r~   
value_jsonr   eerror_codes
error_code
error_infoexception_classst_valueframelinefilemethmsg
alert_textrG   rG   rH   check_response   s   











zErrorHandler.check_response)r#   r$   r%   r&   r   r   r   r   rG   rG   rG   rH   rn      s    rn   N)%typingr   r   r   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"   rI   rn   rG   rG   rG   rH   <module>   sF   (-