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eG d
d dZ		d/d0ddZd1ddZ	d2d3d d!Zd4d"d#Zd5d%d&Zd1d'd(Z	d2d3d)d*Zd4d+d,Zd5d-d.ZdS )6    )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  s   | j S N)value)self r   f/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v85/dom_debugger.pyto_json   s   zDOMBreakpointType.to_jsonc                 C  s   | |S r
   r   clsjsonr   r   r   	from_json   s   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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columnNumberr'   originalHandlerbackendNodeId)dictr   r    r!   r"   r#   r   r%   r&   r'   r(   r)   )r   r   r   r   r   r   C   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 )Nr*   r+   r!   r"   r,   r-   r.   r'   r/   r0   )
r   r    r!   r"   r#   r%   r&   r'   r(   r)   )	r   r   r   ScriptIdr   r$   RemoteObjectr   BackendNodeIdr   r   r   r   r   T   s   






zEventListener.from_json)r   r   r   r   __annotations__r'   r(   r)   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.
    objectIdNr8   r:   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r1   r   )r6   r8   r:   rA   cmd_dictr   r   r   r   get_event_listenersd   s   rH   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.
    nodeIdr*   zDOMDebugger.removeDOMBreakpointr?   NrF   rI   r   rA   rG   r   r   r   r   remove_dom_breakpoint      

rO   
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.removeEventListenerBreakpointr?   r1   rQ   rR   rA   rG   r   r   r   r    remove_event_listener_breakpoint      

rY   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.
    rU   z+DOMDebugger.removeInstrumentationBreakpointr?   NrW   rQ   rA   rG   r   r   r   r   !remove_instrumentation_breakpoint      

r]   urlc                 c  r[   )zZ
    Removes breakpoint from XMLHttpRequest.

    :param url: Resource URL substring.
    r_   zDOMDebugger.removeXHRBreakpointr?   NrW   r_   rA   rG   r   r   r   r   remove_xhr_breakpoint      
ra   c                 c  rL   )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.
    rM   r*   zDOMDebugger.setDOMBreakpointr?   NrF   rN   r   r   r   set_dom_breakpoint   rP   rc   c                 c  rT   )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.
    rU   NrV   z&DOMDebugger.setEventListenerBreakpointr?   rW   rX   r   r   r   set_event_listener_breakpoint   rZ   rd   c                 c  r[   )z
    Sets breakpoint on particular native event.

    **EXPERIMENTAL**

    :param event_name: Instrumentation name to stop on.
    rU   z(DOMDebugger.setInstrumentationBreakpointr?   NrW   r\   r   r   r   set_instrumentation_breakpoint   r^   re   c                 c  r[   )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.setXHRBreakpointr?   NrW   r`   r   r   r   set_xhr_breakpoint  rb   rf   )NN)r6   r7   r8   r9   r:   r;   r<   r=   )rI   rJ   r   r	   r<   rK   r
   )rQ   r   rR   rS   r<   rK   )rQ   r   r<   rK   )r_   r   r<   rK   )
__future__r   utilr   r   dataclassesr   enumtyping r   r   Enumr	   r   rH   rO   rY   r]   ra   rc   rd   re   rf   r   r   r   r   <module>   s.   E




