
    g$                       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	ej                        Z G d
 dej                        Ze G d d             Z	 	 d	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 d	 	 	 	 	 ddZ	 	 	 	 ddZ	 	 	 	 ddZ	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 d	 	 	 	 	 ddZ	 	 	 	 ddZ	 	 	 	 ddZy)     )annotations   )event_classT_JSON_DICT)	dataclassN)dom)runtimec                  2    e Zd ZdZdZdZdZd Zed        Z	y)DOMBreakpointTypez
    DOM breakpoint type.
    zsubtree-modifiedzattribute-modifiedznode-removedc                    | j                   S Nvalueselfs    g/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v129/dom_debugger.pyto_jsonzDOMBreakpointType.to_json       zz    c                     | |      S r    clsjsons     r   	from_jsonzDOMBreakpointType.from_json       4yr   N)
__name__
__module____qualname____doc__SUBTREE_MODIFIEDATTRIBUTE_MODIFIEDNODE_REMOVEDr   classmethodr   r   r   r   r   r      s3     *-!L  r   r   c                  .    e Zd ZdZdZdZd Zed        Zy)CSPViolationTypez
    CSP Violation type.
    ztrustedtype-sink-violationztrustedtype-policy-violationc                    | j                   S r   r   r   s    r   r   zCSPViolationType.to_json'   r   r   c                     | |      S r   r   r   s     r   r   zCSPViolationType.from_json*   r   r   N)	r   r   r   r    TRUSTEDTYPE_SINK_VIOLATIONTRUSTEDTYPE_POLICY_VIOLATIONr   r$   r   r   r   r   r&   r&       s.     ">#A   r   r&   c                      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 Ze	d        Z
y)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                   t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   | j
                  j                         |d<   | j                  |d<   | j                  |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d	<   | j                  | j                  j                         |d
<   |S )Ntype
useCapturer1   r2   scriptId
lineNumbercolumnNumberr7   originalHandlerbackendNodeId)dictr.   r0   r1   r2   r3   r   r5   r6   r7   r8   r9   )r   r   s     r   r   zEventListener.to_jsonR   s    vzzV!--\,,YyyV>>113Z!--\#11^<<#"ll224DO  ,&*&;&;&C&C&ED"#+$($8$8$@$@$BD!r   c                    | t        |d         t        |d         t        |d         t        |d         t        j                  j	                  |d         t        |d         t        |d         d|v r"t        j                  j	                  |d         nd d	|v r"t        j                  j	                  |d	         nd d
|v r't        j                  j	                  |d
         
      S d 
      S )Nr;   r<   r1   r2   r=   r>   r?   r7   r@   rA   )
r.   r0   r1   r2   r3   r5   r6   r7   r8   r9   )	r-   r/   r	   ScriptIdr   r4   RemoteObjectr   BackendNodeIdr   s     r   r   zEventListener.from_jsonc   s    d6l#T,/0i)d6l#&&00j1ABD./d>23GPTXGXG((224	?C^bXimqXqW11;;DAR<STw{RaeiRiC--77_8MN
 	
 pt
 	
r   )r   r   r   r    __annotations__r7   r8   r9   r   r$   r   r   r   r   r,   r,   /   s~     J  M J     6:G29 ?C;B ;?O7>" 
 
r   r,   c              #     K   t               }| j                         |d<   |||d<   |||d<   d|d}|}|d   D cg c]  }t        j                  |       c}S c c}w w)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.
    objectIddepthpiercezDOMDebugger.getEventListenersmethodparams	listeners)rB   r   r,   r   )	object_idrJ   rK   rN   cmd_dictr   is          r   get_event_listenersrS   s   s{      &F"**,F:w!x1H >D04[0AB1M##A&BBBs   <A"AA"c              #  ~   K   t               }| j                         |d<   |j                         |d<   d|d}|}yw)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.
    nodeIdr;   zDOMDebugger.removeDOMBreakpointrL   NrB   r   node_idr.   rN   rQ   r   s        r   remove_dom_breakpointrY      sE      &F(F8]]_F6N3H >D   ;=c              #  J   K   t               }| |d<   |||d<   d|d}|}yw)z
    Removes breakpoint on particular DOM event.

    :param event_name: Event name.
    :param target_name: **(EXPERIMENTAL)** *(Optional)* EventTarget interface name.
    	eventNameN
targetNamez)DOMDebugger.removeEventListenerBreakpointrL   rB   
event_nametarget_namerN   rQ   r   s        r    remove_event_listener_breakpointrb      s?      &F$F;*|=H >D   !#c              #  <   K   t               }| |d<   d|d}|}yw)z
    Removes breakpoint on particular native event.

    **EXPERIMENTAL**

    :param event_name: Instrumentation name to stop on.
    r\   z+DOMDebugger.removeInstrumentationBreakpointrL   Nr^   r`   rN   rQ   r   s       r   !remove_instrumentation_breakpointrf      s/      &F$F;?H >D   c              #  <   K   t               }| |d<   d|d}|}yw)zZ
    Removes breakpoint from XMLHttpRequest.

    :param url: Resource URL substring.
    urlzDOMDebugger.removeXHRBreakpointrL   Nr^   ri   rN   rQ   r   s       r   remove_xhr_breakpointrk      s.      &FF5M3H >Drg   c              #  ~   K   t               }| D cg c]  }|j                          c}|d<   d|d}|}yc c}w w)z
    Sets breakpoint on particular CSP violations.

    **EXPERIMENTAL**

    :param violation_types: CSP Violations to stop upon.
    violationTypesz"DOMDebugger.setBreakOnCSPViolationrL   NrV   )violation_typesrN   rR   rQ   r   s        r   set_break_on_csp_violationro      sG      &F5DE		EF6H >D  Fs   =8=c              #  ~   K   t               }| j                         |d<   |j                         |d<   d|d}|}yw)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.
    rU   r;   zDOMDebugger.setDOMBreakpointrL   NrV   rW   s        r   set_dom_breakpointrq      sE      &F(F8]]_F6N0H >DrZ   c              #  J   K   t               }| |d<   |||d<   d|d}|}yw)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.setEventListenerBreakpointrL   r^   r_   s        r   set_event_listener_breakpointrs     s?      &F$F;*|:H >Drc   c              #  <   K   t               }| |d<   d|d}|}yw)z
    Sets breakpoint on particular native event.

    **EXPERIMENTAL**

    :param event_name: Instrumentation name to stop on.
    r\   z(DOMDebugger.setInstrumentationBreakpointrL   Nr^   re   s       r   set_instrumentation_breakpointru     s/      &F$F;<H >Drg   c              #  <   K   t               }| |d<   d|d}|}yw)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.setXHRBreakpointrL   Nr^   rj   s       r   set_xhr_breakpointrw   *  s.      &FF5M0H >Drg   )NN)rP   zruntime.RemoteObjectIdrJ   ztyping.Optional[int]rK   ztyping.Optional[bool]returnzFtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[EventListener]])rX   z
dom.NodeIdr.   r   rx   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]r   )r`   r-   ra   ztyping.Optional[str]rx   ry   )r`   r-   rx   ry   )ri   r-   rx   ry   )rn   ztyping.List[CSPViolationType]rx   ry   )
__future__r   utilr   r   dataclassesr   enumtyping r   r	   Enumr   r&   r,   rS   rY   rb   rf   rk   ro   rq   rs   ru   rw   r   r   r   <module>r      s   # * !    		  tyy  @
 @
 @
J '+(,C)C#C &C 
N	C6  
8, -1) 
8*	7&	7"6	7&  
8, -1) 
8*	7&	7r   