o
    ҷh$                     @  s   d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
 ddl	mZ G dd	 d	ejZG d
d dejZeG dd dZ		d5d6ddZd7ddZ	d8d9d"d#Zd:d$d%Zd;d'd(Zd<d+d,Zd7d-d.Z	d8d9d/d0Zd:d1d2Zd;d3d4ZdS )=    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)runtimec                   @  s0   e Zd ZdZdZdZdZdd Zedd Z	d	S )
DOMBreakpointTypez
    DOM breakpoint type.
    zsubtree-modifiedzattribute-modifiedznode-removedc                 C     | j S Nvalueself r   g/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v118/dom_debugger.pyto_json      zDOMBreakpointType.to_jsonc                 C     | |S r   r   clsjsonr   r   r   	from_json      zDOMBreakpointType.from_jsonN)
__name__
__module____qualname____doc__SUBTREE_MODIFIEDATTRIBUTE_MODIFIEDNODE_REMOVEDr   classmethodr   r   r   r   r   r	      s    r	   c                   @  s,   e Zd ZdZdZdZdd Zedd ZdS )	CSPViolationTypez
    CSP Violation type.
    ztrustedtype-sink-violationztrustedtype-policy-violationc                 C  r
   r   r   r   r   r   r   r   '   r   zCSPViolationType.to_jsonc                 C  r   r   r   r   r   r   r   r   *   r   zCSPViolationType.from_jsonN)	r   r   r   r   TRUSTEDTYPE_SINK_VIOLATIONTRUSTEDTYPE_POLICY_VIOLATIONr   r!   r   r   r   r   r   r"       s    r"   c                   @  s   e Zd ZU dZded< ded< ded< ded< ded	< d
ed< d
ed< dZded< dZded< dZded< dd Ze	dd Z
dS )EventListenerz 
    Object event listener.
    strtype_booluse_capturepassiveoncezruntime.ScriptId	script_idintline_numbercolumn_numberNz%typing.Optional[runtime.RemoteObject]handleroriginal_handlerz"typing.Optional[dom.BackendNodeId]backend_node_idc                 C  s   t  }| j|d< | j|d< | j|d< | j|d< | j |d< | j|d< | j|d< | j	d ur4| j	 |d< | j
d ur@| j
 |d	< | jd urL| j |d
< |S )Ntype
useCapturer*   r+   scriptId
lineNumbercolumnNumberr0   originalHandlerbackendNodeId)dictr'   r)   r*   r+   r,   r   r.   r/   r0   r1   r2   )r   r   r   r   r   r   R   s   








zEventListener.to_jsonc                 C  s   | t |d t|d t|d t|d tj|d t|d t|d d|v r2tj|d nd d	|v r?tj|d	 nd d
|v rNtj|d
 d
S d d
S )Nr3   r4   r*   r+   r5   r6   r7   r0   r8   r9   )
r'   r)   r*   r+   r,   r.   r/   r0   r1   r2   )	r&   r(   r   ScriptIdr   r-   RemoteObjectr   BackendNodeIdr   r   r   r   r   c   s   






zEventListener.from_json)r   r   r   r   __annotations__r0   r1   r2   r   r!   r   r   r   r   r   r%   /   s   
 r%   	object_idruntime.RemoteObjectIddepthtyping.Optional[int]piercetyping.Optional[bool]returnFtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[EventListener]]c                 c  sV    t  }|  |d< |dur||d< |dur||d< d|d}|V }dd |d	 D S )
a  
    Returns event listeners of the given object.

    :param object_id: Identifier of the object to return listeners for.
    :param depth: *(Optional)* The maximum depth at which Node children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0.
    :param pierce: *(Optional)* Whether or not iframes and shadow roots should be traversed when returning the subtree (default is false). Reports listeners for all contexts if pierce is enabled.
    :returns: Array of relevant listeners.
    objectIdNrA   rC   zDOMDebugger.getEventListenersmethodparamsc                 S  s   g | ]}t |qS r   )r%   r   .0ir   r   r   
<listcomp>   s    z'get_event_listeners.<locals>.<listcomp>	listenersr:   r   )r?   rA   rC   rJ   cmd_dictr   r   r   r   get_event_listenerss   s   rR   node_id
dom.NodeIdr'   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                 c  4    t  }|  |d< | |d< d|d}|V }dS )z
    Removes DOM breakpoint that was set using ``setDOMBreakpoint``.

    :param node_id: Identifier of the node to remove breakpoint from.
    :param type_: Type of the breakpoint to remove.
    nodeIdr3   zDOMDebugger.removeDOMBreakpointrH   NrP   rS   r'   rJ   rQ   r   r   r   r   remove_dom_breakpoint      

rY   
event_namer&   target_nametyping.Optional[str]c                 c  4    t  }| |d< |dur||d< d|d}|V }dS )z
    Removes breakpoint on particular DOM event.

    :param event_name: Event name.
    :param target_name: **(EXPERIMENTAL)** *(Optional)* EventTarget interface name.
    	eventNameN
targetNamez)DOMDebugger.removeEventListenerBreakpointrH   r:   r[   r\   rJ   rQ   r   r   r   r    remove_event_listener_breakpoint      

rc   c                 c  $    t  }| |d< d|d}|V }dS )z
    Removes breakpoint on particular native event.

    **EXPERIMENTAL**

    :param event_name: Instrumentation name to stop on.
    r_   z+DOMDebugger.removeInstrumentationBreakpointrH   Nra   r[   rJ   rQ   r   r   r   r   !remove_instrumentation_breakpoint      

rg   urlc                 c  re   )zZ
    Removes breakpoint from XMLHttpRequest.

    :param url: Resource URL substring.
    ri   zDOMDebugger.removeXHRBreakpointrH   Nra   ri   rJ   rQ   r   r   r   r   remove_xhr_breakpoint      
rk   violation_typestyping.List[CSPViolationType]c                 c  s.    t  }dd | D |d< d|d}|V }dS )z
    Sets breakpoint on particular CSP violations.

    **EXPERIMENTAL**

    :param violation_types: CSP Violations to stop upon.
    c                 S  s   g | ]}|  qS r   )r   rK   r   r   r   rN      s    z.set_break_on_csp_violation.<locals>.<listcomp>violationTypesz"DOMDebugger.setBreakOnCSPViolationrH   Nra   )rm   rJ   rQ   r   r   r   r   set_break_on_csp_violation   s   

rp   c                 c  rV   )z
    Sets breakpoint on particular operation with DOM.

    :param node_id: Identifier of the node to set breakpoint on.
    :param type_: Type of the operation to stop upon.
    rW   r3   zDOMDebugger.setDOMBreakpointrH   NrP   rX   r   r   r   set_dom_breakpoint   rZ   rq   c                 c  r^   )a!  
    Sets breakpoint on particular DOM event.

    :param event_name: DOM Event name to stop on (any DOM event will do).
    :param target_name: **(EXPERIMENTAL)** *(Optional)* EventTarget interface name to stop on. If equal to ```"*"``` or not provided, will stop on any EventTarget.
    r_   Nr`   z&DOMDebugger.setEventListenerBreakpointrH   ra   rb   r   r   r   set_event_listener_breakpoint  rd   rr   c                 c  re   )z
    Sets breakpoint on particular native event.

    **EXPERIMENTAL**

    :param event_name: Instrumentation name to stop on.
    r_   z(DOMDebugger.setInstrumentationBreakpointrH   Nra   rf   r   r   r   set_instrumentation_breakpoint  rh   rs   c                 c  re   )z
    Sets breakpoint on XMLHttpRequest.

    :param url: Resource URL substring. All XHRs having this substring in the URL will get stopped upon.
    ri   zDOMDebugger.setXHRBreakpointrH   Nra   rj   r   r   r   set_xhr_breakpoint*  rl   rt   )NN)r?   r@   rA   rB   rC   rD   rE   rF   )rS   rT   r'   r	   rE   rU   r   )r[   r&   r\   r]   rE   rU   )r[   r&   rE   rU   )ri   r&   rE   rU   )rm   rn   rE   rU   )
__future__r   utilr   r   dataclassesr   enumtyping r   r   Enumr	   r"   r%   rR   rY   rc   rg   rk   rp   rq   rr   rs   rt   r   r   r   r   <module>   s2   E





