
     fC                    >   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
  G d de          Z G d	 d
e          Z G d dej                  Ze G d d                      Z G d dej                  Z G d dej                  Ze G d d                      Ze G d d                      Ze G d d                      Z	 	 dEdFd!Z	 	 dEdGd$Z	 dHdId%Z	 	 dEdJd)ZdKd*ZdKd+ZdKd,ZdLd.ZdMd0Z	 	 dEdNd5Z 	 dHdOd8Z!dPd;Z"	 dHdQd?Z#dRdAZ$	 	 dEdSdDZ%dS )T    )annotations   )event_classT_JSON_DICT)	dataclassN)targetc                  >     e Zd ZddZedd            Z fdZ xZS )	BrowserContextIDreturnstrc                    | S N selfs    q/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/selenium/webdriver/common/devtools/v85/browser.pyto_jsonzBrowserContextID.to_json           jsonc                     | |          S r   r   clsr   s     r   	from_jsonzBrowserContextID.from_json       s4yyr   c                j    d                     t                                                                S )NzBrowserContextID({})formatsuper__repr__r   	__class__s    r   r    zBrowserContextID.__repr__   s'    %,,UWW-=-=-?-?@@@r   )r   r   )r   r   r   r
   __name__
__module____qualname__r   classmethodr   r    __classcell__r"   s   @r   r
   r
      su               [A A A A A A A A Ar   r
   c                  >     e Zd ZddZedd            Z fdZ xZS )	WindowIDr   intc                    | S r   r   r   s    r   r   zWindowID.to_json   r   r   r   c                     | |          S r   r   r   s     r   r   zWindowID.from_json   r   r   c                j    d                     t                                                                S )NzWindowID({})r   r!   s    r   r    zWindowID.__repr__#   s'    $$UWW%5%5%7%7888r   )r   r,   )r   r,   r   r+   r#   r)   s   @r   r+   r+      sl               [9 9 9 9 9 9 9 9 9r   r+   c                  >    e Zd ZdZdZdZdZdZd Ze	d             Z
dS )	WindowStatez*
    The state of the browser window.
    normal	minimized	maximized
fullscreenc                    | j         S r   valuer   s    r   r   zWindowState.to_json0   
    zr   c                     | |          S r   r   r   s     r   r   zWindowState.from_json3   r   r   N)r$   r%   r&   __doc__NORMAL	MINIMIZED	MAXIMIZED
FULLSCREENr   r'   r   r   r   r   r1   r1   '   s^          FIIJ     [  r   r1   c                  v    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   d
 Z
ed             ZdS )Boundsz+
    Browser window bounds information
    Nztyping.Optional[int]lefttopwidthheightztyping.Optional[WindowState]window_statec                    t                      }| j        
| j        |d<   | j        
| j        |d<   | j        
| j        |d<   | j        
| j        |d<   | j        | j                                        |d<   |S )NrB   rC   rD   rE   windowState)dictrB   rC   rD   rE   rF   r   r   r   s     r   r   zBounds.to_jsonL   s~    vv9 9DL8(DK:! JDM;"![DN("&"3";";"="=Dr   c           
     2    | d|v rt          |d                   nd d|v rt          |d                   nd d|v rt          |d                   nd d|v rt          |d                   nd d|v r t                              |d                   nd           S )NrB   rC   rD   rE   rH   )rB   rC   rD   rE   rF   )r,   r1   r   r   s     r   r   zBounds.from_jsonZ   s    s&,nnT&\"""$$)TMMDK   t(/4#d7m$$$T*2d*:*:3tH~&&&GTX\G\G\..tM/BCCCbf
 
 
 	
r   )r$   r%   r&   r;   rB   __annotations__rC   rD   rE   rF   r   r'   r   r   r   r   rA   rA   8   s           "&D%%%% !%C$$$$ #'E&&&& $(F'''' 26L5555   
 
 [
 
 
r   rA   c                  ~    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZd Zed             ZdS )PermissionTypeaccessibilityEventsaudioCapturebackgroundSyncbackgroundFetchclipboardReadWriteclipboardSanitizedWritedurableStorageflashgeolocationmidi	midiSysexnfcnotificationspaymentHandlerperiodicBackgroundSyncprotectedMediaIdentifiersensorsvideoCaptureidleDetectionwakeLockScreenwakeLockSystemc                    | j         S r   r7   r   s    r   r   zPermissionType.to_json|   r9   r   c                     | |          S r   r   r   s     r   r   zPermissionType.from_json   r   r   N)r$   r%   r&   ACCESSIBILITY_EVENTSAUDIO_CAPTUREBACKGROUND_SYNCBACKGROUND_FETCHCLIPBOARD_READ_WRITECLIPBOARD_SANITIZED_WRITEDURABLE_STORAGEFLASHGEOLOCATIONMIDI
MIDI_SYSEXNFCNOTIFICATIONSPAYMENT_HANDLERPERIODIC_BACKGROUND_SYNCPROTECTED_MEDIA_IDENTIFIERSENSORSVIDEO_CAPTUREIDLE_DETECTIONWAKE_LOCK_SCREENWAKE_LOCK_SYSTEMr   r'   r   r   r   r   rN   rN   e   s        0"M&O(/ 9&OEKDJ
C#M&O7!;G"M$N''     [  r   rN   c                  6    e Zd ZdZdZdZd Zed             ZdS )PermissionSettinggranteddeniedpromptc                    | j         S r   r7   r   s    r   r   zPermissionSetting.to_json   r9   r   c                     | |          S r   r   r   s     r   r   zPermissionSetting.from_json   r   r   N)	r$   r%   r&   GRANTEDDENIEDPROMPTr   r'   r   r   r   r   r|   r|      sM        GFF     [  r   r|   c                  r    e Zd ZU dZded<   dZded<   dZded<   dZded	<   dZded
<   d Z	e
d             ZdS )PermissionDescriptorz
    Definition of PermissionDescriptor defined in the Permissions API:
    https://w3c.github.io/permissions/#dictdef-permissiondescriptor.
    r   nameNtyping.Optional[bool]sysexuser_visible_onlytyping.Optional[str]type_allow_without_sanitizationc                    t                      }| j        |d<   | j        
| j        |d<   | j        
| j        |d<   | j        
| j        |d<   | j        
| j        |d<   |S )Nr   r   userVisibleOnlytypeallowWithoutSanitization)rI   r   r   r   r   r   rJ   s     r   r   zPermissionDescriptor.to_json   so    vvyV:! JDM!-&*&<D"#:!:DL*6/3/ND+,r   c           
         | t          |d                   d|v rt          |d                   nd d|v rt          |d                   nd d|v rt          |d                   nd d|v rt          |d                   nd           S )Nr   r   r   r   r   )r   r   r   r   r   )r   boolr   s     r   r   zPermissionDescriptor.from_json   s    sT&\"")0D$tG}%%%d?PTX?X?Xd4(9#:;;;^b'-~~#d6l###4QkosQsQstD1K,L'M'M'My}
 
 
 	
r   )r$   r%   r&   r;   rL   r   r   r   r   r   r'   r   r   r   r   r   r      s           III $(E'''' 043333 #'E&&&& 9=<<<<   
 
 [
 
 
r   r   c                  N    e Zd ZU dZded<   ded<   ded<   d Zed             ZdS )	Bucketz"
    Chrome histogram bucket.
    r,   lowhighcountc                ^    t                      }| j        |d<   | j        |d<   | j        |d<   |S )Nr   r   r   )rI   r   r   r   rJ   s     r   r   zBucket.to_json   s1    vvhUyV
Wr   c                     | t          |d                   t          |d                   t          |d                             S )Nr   r   r   )r   r   r   )r,   r   s     r   r   zBucket.from_json   sH    sDK  T&\""d7m$$
 
 
 	
r   Nr$   r%   r&   r;   rL   r   r'   r   r   r   r   r   r      sk           HHH III JJJ   
 
 [
 
 
r   r   c                  X    e Zd ZU dZded<   ded<   ded<   ded<   d	 Zed
             ZdS )	Histogramz
    Chrome histogram.
    r   r   r,   sum_r   ztyping.List[Bucket]bucketsc                    t                      }| j        |d<   | j        |d<   | j        |d<   d | j        D             |d<   |S )Nr   sumr   c                6    g | ]}|                                 S r   r   .0is     r   
<listcomp>z%Histogram.to_json.<locals>.<listcomp>   s     ===1199;;===r   r   )rI   r   r   r   r   rJ   s     r   r   zHistogram.to_json   sJ    vvyViU
W=====Yr   c                     | t          |d                   t          |d                   t          |d                   d |d         D                       S )Nr   r   r   c                B    g | ]}t                               |          S r   )r   r   r   s     r   r   z'Histogram.from_json.<locals>.<listcomp>   s&    BBBQV%%a((BBBr   r   )r   r   r   r   )r   r,   r   s     r   r   zHistogram.from_json   s]    sT&\""T%[!!d7m$$BB$y/BBB	
 
 
 	
r   Nr   r   r   r   r   r      sy           III III JJJ !      
 
 [
 
 
r   r   
permissionsettingoriginr   browser_context_id!typing.Optional[BrowserContextID]r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c              #     K   t                      }|                                 |d<   |                                |d<   |||d<   ||                                |d<   d|d}|V }dS )a  
    Set permission settings for given origin.

    **EXPERIMENTAL**

    :param permission: Descriptor of permission to override.
    :param setting: Setting of the permission.
    :param origin: *(Optional)* Origin the permission applies to, all origins if not specified.
    :param browser_context_id: *(Optional)* Context to override. When omitted, default browser context is used.
    r   r   Nr   browserContextIdzBrowser.setPermissionmethodparamsrI   r   )r   r   r   r   r   cmd_dictr   s          r   set_permissionr     s        &&F%--//F<))F9!x%%7%?%?%A%A!") H >>DDDr   permissionstyping.List[PermissionType]c              #     K   t                      }d | D             |d<   |||d<   ||                                |d<   d|d}|V }dS )aa  
    Grant specific permissions to the given origin and reject all others.

    **EXPERIMENTAL**

    :param permissions:
    :param origin: *(Optional)* Origin the permission applies to, all origins if not specified.
    :param browser_context_id: *(Optional)* BrowserContext to override permissions. When omitted, default browser context is used.
    c                6    g | ]}|                                 S r   r   r   s     r   r   z%grant_permissions.<locals>.<listcomp>.  s     >>>QQYY[[>>>r   r   Nr   r   zBrowser.grantPermissionsr   r   )r   r   r   r   r   r   s         r   grant_permissionsr     sw       &&F>>+>>>F=!x%%7%?%?%A%A!", H >>DDDr   c              #  j   K   t                      }| |                                 |d<   d|d}|V }dS )z
    Reset all permission management for all origins.

    **EXPERIMENTAL**

    :param browser_context_id: *(Optional)* BrowserContext to reset permissions. When omitted, default browser context is used.
    Nr   zBrowser.resetPermissionsr   r   )r   r   r   r   s       r   reset_permissionsr   :  sO       &&F%%7%?%?%A%A!", H >>DDDr   behaviorr   download_pathc              #     K   t                      }| |d<   ||                                |d<   |||d<   d|d}|V }dS )a?  
    Set the behavior when downloading a file.

    **EXPERIMENTAL**

    :param behavior: Whether to allow all or deny all download requests, or use default Chrome behavior if available (otherwise deny). ``allowAndName`` allows download and names files according to their dowmload guids.
    :param browser_context_id: *(Optional)* BrowserContext to set download behavior. When omitted, default browser context is used.
    :param download_path: *(Optional)* The default path to save downloaded files to. This is requred if behavior is set to 'allow' or 'allowAndName'.
    r   Nr   downloadPathzBrowser.setDownloadBehaviorr   r   )r   r   r   r   r   r   s         r   set_download_behaviorr   N  si       &&F!F:%%7%?%?%A%A!" !.~/ H >>DDDr   c               #     K   ddi} | V }dS )z#
    Close browser gracefully.
    r   zBrowser.closeNr   r   r   s     r   closer   i  s#      
 	/H >>DDDr   c               #     K   ddi} | V }dS )zC
    Crashes browser on the main thread.

    **EXPERIMENTAL**
    r   zBrowser.crashNr   r   s     r   crashr   s  s#       	/H >>DDDr   c               #     K   ddi} | V }dS )z4
    Crashes GPU process.

    **EXPERIMENTAL**
    r   zBrowser.crashGpuProcessNr   r   s     r   crash_gpu_processr     s$       	+H >>DDDr   Qtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[str, str, str, str, str]]c               #     K   ddi} | V }t          |d                   t          |d                   t          |d                   t          |d                   t          |d                   fS )a,  
    Returns version information.

    :returns: A tuple with the following items:

        0. **protocolVersion** - Protocol version.
        1. **product** - Product name.
        2. **revision** - Product revision.
        3. **userAgent** - User-Agent.
        4. **jsVersion** - V8 version.
    r   zBrowser.getVersionprotocolVersionproductrevision	userAgent	jsVersionr   r   s     r   get_versionr     sz       	&H >>DD"#$$DODDD r   <typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]]c               #  :   K   ddi} | V }d |d         D             S )z
    Returns the command line switches for the browser process if, and only if
    --enable-automation is on the commandline.

    **EXPERIMENTAL**

    :returns: Commandline parameters
    r   zBrowser.getBrowserCommandLinec                ,    g | ]}t          |          S r   r   r   s     r   r   z,get_browser_command_line.<locals>.<listcomp>  s    ...qCFF...r   	argumentsr   r   s     r   get_browser_command_liner     s9       	1H >>D..D-....r   querydeltar   Btyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[Histogram]]c              #  t   K   t                      }| | |d<   |||d<   d|d}|V }d |d         D             S )aS  
    Get Chrome histograms.

    **EXPERIMENTAL**

    :param query: *(Optional)* Requested substring in name. Only histograms which have query as a substring in their name are extracted. An empty or absent query returns all histograms.
    :param delta: *(Optional)* If true, retrieve delta since last call.
    :returns: Histograms.
    Nr   r   zBrowser.getHistogramsr   c                B    g | ]}t                               |          S r   )r   r   r   s     r   r   z"get_histograms.<locals>.<listcomp>  s&    ???qI""???r   
histogramsrI   )r   r   r   r   r   s        r   get_histogramsr     se       &&Fww) H >>D??D,>????r   r   5typing.Generator[T_JSON_DICT, T_JSON_DICT, Histogram]c              #     K   t                      }| |d<   |||d<   d|d}|V }t                              |d                   S )z
    Get a Chrome histogram by name.

    **EXPERIMENTAL**

    :param name: Requested histogram name.
    :param delta: *(Optional)* If true, retrieve delta since last call.
    :returns: Histogram.
    r   Nr   zBrowser.getHistogramr   	histogram)rI   r   r   )r   r   r   r   r   s        r   get_histogramr     s_       &&FF6Nw( H >>DtK0111r   	window_id2typing.Generator[T_JSON_DICT, T_JSON_DICT, Bounds]c              #     K   t                      }|                                 |d<   d|d}|V }t                              |d                   S )z
    Get position and size of the browser window.

    **EXPERIMENTAL**

    :param window_id: Browser window id.
    :returns: Bounds information of the window. When window state is 'minimized', the restored window position and size are returned.
    windowIdzBrowser.getWindowBoundsr   bounds)rI   r   rA   r   )r   r   r   r   s       r   get_window_boundsr     s\       &&F"**,,F:+ H >>DDN+++r   	target_id typing.Optional[target.TargetID]Jtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[WindowID, Bounds]]c              #     K   t                      }| |                                 |d<   d|d}|V }t                              |d                   t                              |d                   fS )a  
    Get the browser window that contains the devtools target.

    **EXPERIMENTAL**

    :param target_id: *(Optional)* Devtools agent host id. If called as a part of the session, associated targetId is used.
    :returns: A tuple with the following items:

        0. **windowId** - Browser window id.
        1. **bounds** - Bounds information of the window. When window state is 'minimized', the restored window position and size are returned.
    NtargetIdzBrowser.getWindowForTargetr   r   r   )rI   r   r+   r   rA   )r   r   r   r   s       r   get_window_for_targetr     s       &&F&..00z. H >>D4
+,,h(( r   r   c              #     K   t                      }|                                 |d<   |                                |d<   d|d}|V }dS )a5  
    Set position and/or size of the browser window.

    **EXPERIMENTAL**

    :param window_id: Browser window id.
    :param bounds: New window bounds. The 'minimized', 'maximized' and 'fullscreen' states cannot be combined with 'left', 'top', 'width' or 'height'. Leaves unspecified fields unchanged.
    r   r   zBrowser.setWindowBoundsr   Nr   )r   r   r   r   r   s        r   set_window_boundsr     s\       &&F"**,,F:~~''F8+ H >>DDDr   badge_labelimagec              #  T   K   t                      }| | |d<   |||d<   d|d}|V }dS )z
    Set dock tile details, platform-specific.

    **EXPERIMENTAL**

    :param badge_label: *(Optional)*
    :param image: *(Optional)* Png encoded image.
    N
badgeLabelr   zBrowser.setDockTiler   r   )r   r   r   r   r   s        r   set_dock_tiler   .  sQ       &&F*|w' H >>DDDr   )NN)
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   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   r+   r   rA   r   r   )r   r   r   r   r   r   )&
__future__r   utilr   r   dataclassesr   enumtyping r   r   r
   r,   r+   Enumr1   rA   rN   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s   # " " " " " * * * * * * * * ! ! ! ! ! !        	A 	A 	A 	A 	As 	A 	A 	A	9 	9 	9 	9 	9s 	9 	9 	9    $)   " )
 )
 )
 )
 )
 )
 )
 )
X    TY   >
 
 
 
 
	 
 
 
 +
 +
 +
 +
 +
 +
 +
 +
\ 
 
 
 
 
 
 
 
: 
 
 
 
 
 
 
 
J (,@D	    @ (,@D    8 AE    , AE.2    6   	 	 	 		 	 	 	   2/ / / /" '+'+@ @ @ @ @8 (,2 2 2 2 22, , , ,, 7;    8   . -1&*      r   