
    g!                    L   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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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    f/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/dom_debugger.pyto_jsonzDOMBreakpointType.to_json   s    zz    c                     | |      S r    clsjsons     r   	from_jsonzDOMBreakpointType.from_json   s    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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
useCapturer'   r(   scriptId
lineNumbercolumnNumberr-   originalHandlerbackendNodeId)dictr$   r&   r'   r(   r)   r   r+   r,   r-   r.   r/   )r   r   s     r   r   zEventListener.to_jsonC   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 )Nr1   r2   r'   r(   r3   r4   r5   r-   r6   r7   )
r$   r&   r'   r(   r)   r+   r,   r-   r.   r/   )	r#   r%   r	   ScriptIdr   r*   RemoteObjectr   BackendNodeIdr   s     r   r   zEventListener.from_jsonT   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__r-   r.   r/   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)r8   r   r"   r   )	object_idr@   rA   rD   cmd_dictr   is          r   get_event_listenersrI   d   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.
    nodeIdr1   zDOMDebugger.removeDOMBreakpointrB   Nr8   r   node_idr$   rD   rG   r   s        r   remove_dom_breakpointrO      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.removeEventListenerBreakpointrB   r8   
event_nametarget_namerD   rG   r   s        r    remove_event_listener_breakpointrX      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.
    rR   z+DOMDebugger.removeInstrumentationBreakpointrB   NrT   rV   rD   rG   r   s       r   !remove_instrumentation_breakpointr\      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.removeXHRBreakpointrB   NrT   r_   rD   rG   r   s       r   remove_xhr_breakpointra      s.      &FF5M3H >Dr]   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.
    rK   r1   zDOMDebugger.setDOMBreakpointrB   NrL   rM   s        r   set_dom_breakpointrc      sE      &F(F8]]_F6N0H >DrP   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.
    rR   NrS   z&DOMDebugger.setEventListenerBreakpointrB   rT   rU   s        r   set_event_listener_breakpointre      s?      &F$F;*|:H >DrY   c              #  <   K   t               }| |d<   d|d}|}yw)z
    Sets breakpoint on particular native event.

    **EXPERIMENTAL**

    :param event_name: Instrumentation name to stop on.
    rR   z(DOMDebugger.setInstrumentationBreakpointrB   NrT   r[   s       r   set_instrumentation_breakpointrg      s/      &F$F;<H >Dr]   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.
    r_   zDOMDebugger.setXHRBreakpointrB   NrT   r`   s       r   set_xhr_breakpointri     s.      &FF5M0H >Dr]   )NN)rF   zruntime.RemoteObjectIdr@   ztyping.Optional[int]rA   ztyping.Optional[bool]returnzFtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[EventListener]])rN   z
dom.NodeIdr$   r   rj   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]r   )rV   r#   rW   ztyping.Optional[str]rj   rk   )rV   r#   rj   rk   )r_   r#   rj   rk   )
__future__r   utilr   r   dataclassesr   enumtyping r   r	   Enumr   r"   rI   rO   rX   r\   ra   rc   re   rg   ri   r   r   r   <module>rs      sZ   # * !    		   @
 @
 @
J '+(,C)C#C &C 
N	C6  
8, -1) 
8*	7&	7"  
8, -1) 
8*	7&	7r   