
     fS                    &   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          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 G d dej                  Ze G d d                      Ze G d d                      Z	 	 dUdVd$Z	 	 dUdWd'Z	 dXdYd(Z	 	 	 dZd[d.Z	 dXd\d0Zd]d1Zd]d2Zd]d3Z d^d5Z!d_d7Z"	 	 dUd`d;Z#	 dXdad>Z$dbdAZ%	 dXdcdEZ&dddGZ'	 	 dUdedJZ(dfdLZ)dgdNZ* edO          e G dP dQ                                  Z+ edR          e G dS dT                                  Z,dS )h    )annotations   )event_classT_JSON_DICT)	dataclassN)page)targetc                  >     e Zd ZddZedd            Z fdZ xZS )	BrowserContextIDreturnstrc                    | S N selfs    r/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/selenium/webdriver/common/devtools/v127/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_json1   
    zr   c                     | |          S r   r   r   s     r   r   zWindowState.from_json4   r   r   N)r%   r&   r'   __doc__NORMAL	MINIMIZED	MAXIMIZED
FULLSCREENr   r(   r   r   r   r   r2   r2   (   s^          FIIJ     [  r   r2   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 )NrC   rD   rE   rF   windowState)dictrC   rD   rE   rF   rG   r   r   r   s     r   r   zBounds.to_jsonM   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 )NrC   rD   rE   rF   rI   )rC   rD   rE   rF   rG   )r-   r2   r   r   s     r   r   zBounds.from_json[   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<   rC   __annotations__rD   rE   rF   rG   r   r(   r   r   r   r   rB   rB   9   s           "&D%%%% !%C$$$$ #'E&&&& $(F'''' 26L5555   
 
 [
 
 
r   rB   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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capturedSurfaceControlclipboardReadWriteclipboardSanitizedWritedisplayCapturedurableStorageflashgeolocationidleDetection
localFontsmidi	midiSysexnfcnotificationspaymentHandlerperiodicBackgroundSyncprotectedMediaIdentifiersensorsstorageAccessspeakerSelectiontopLevelStorageAccessvideoCapturevideoCapturePanTiltZoomwakeLockScreenwakeLockSystemwindowManagementc                    | j         S r   r8   r   s    r   r   zPermissionType.to_json   r:   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CAPTURED_SURFACE_CONTROLCLIPBOARD_READ_WRITECLIPBOARD_SANITIZED_WRITEDISPLAY_CAPTUREDURABLE_STORAGEFLASHGEOLOCATIONIDLE_DETECTIONLOCAL_FONTSMIDI
MIDI_SYSEXNFCNOTIFICATIONSPAYMENT_HANDLERPERIODIC_BACKGROUND_SYNCPROTECTED_MEDIA_IDENTIFIERSENSORSSTORAGE_ACCESSSPEAKER_SELECTIONTOP_LEVEL_STORAGE_ACCESSVIDEO_CAPTUREVIDEO_CAPTURE_PAN_TILT_ZOOMWAKE_LOCK_SCREENWAKE_LOCK_SYSTEMWINDOW_MANAGEMENTr   r(   r   r   r   r   rO   rO   f   s        0"M&O(7/ 9&O&OEK$NKDJ
C#M&O7!;G$N*6"M";''*     [  r   rO   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   r8   r   s    r   r   zPermissionSetting.to_json   r:   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/#dom-permissiondescriptor.
    r   nameNtyping.Optional[bool]sysexuser_visible_onlyallow_without_sanitizationpan_tilt_zoomc                    t                      }| j        |d<   | j        
| j        |d<   | j        
| j        |d<   | j        
| j        |d<   | j        
| j        |d<   |S )Nr   r   userVisibleOnlyallowWithoutSanitizationpanTiltZoom)rJ   r   r   r   r   r   rK   s     r   r   zPermissionDescriptor.to_json   sr    vvyV:! JDM!-&*&<D"#*6/3/ND+,)"&"4D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#:;;;^bQkosQsQstD1K,L'M'M'My}7D7L7L$tM2333RV
 
 
 	
r   )r%   r&   r'   r<   rM   r   r   r   r   r   r(   r   r   r   r   r   r      s           III $(E'''' 043333 9=<<<< ,0M////   
 
 [
 
 
r   r   c                  6    e Zd ZdZdZdZd Zed             ZdS )BrowserCommandIdz<
    Browser command ids used by executeBrowserCommand.
    openTabSearchcloseTabSearchc                    | j         S r   r8   r   s    r   r   zBrowserCommandId.to_json   r:   r   c                     | |          S r   r   r   s     r   r   zBrowserCommandId.from_json   r   r   N)	r%   r&   r'   r<   OPEN_TAB_SEARCHCLOSE_TAB_SEARCHr   r(   r   r   r   r   r   r      sU          &O'     [  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   )rJ   r   r   r   rK   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<   rM   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   )rJ   r   r   r   r   rK   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origintyping.Optional[str]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rJ   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>F  s     >>>QQYY[[>>>r   r   Nr   r   zBrowser.grantPermissionsr   r   )r   r   r   r   r   r   s         r   grant_permissionsr   7  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.

    :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   R  sO       &&F%%7%?%?%A%A!", H >>DDDr   behaviorr   download_pathevents_enabledr   c              #     K   t                      }| |d<   ||                                |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 download 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 required if behavior is set to 'allow' or 'allowAndName'.
    :param events_enabled: *(Optional)* Whether to emit download events (defaults to false).
    r   Nr   downloadPatheventsEnabledzBrowser.setDownloadBehaviorr   r   )r   r   r   r   r   r   r   s          r   set_download_behaviorr   d  sy        &&F!F:%%7%?%?%A%A!" !.~!"0/ H >>DDDr   guidc              #  t   K   t                      }| |d<   ||                                |d<   d|d}|V }dS )a   
    Cancel a download if in progress

    **EXPERIMENTAL**

    :param guid: Global unique identifier of the download.
    :param browser_context_id: *(Optional)* BrowserContext to perform the action in. When omitted, default browser context is used.
    r   Nr   zBrowser.cancelDownloadr   r   )r   r   r   r   r   s        r   cancel_downloadr     sX       &&FF6N%%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     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#       	/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deltaBtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[Histogram]]c              #  t   K   t                      }| | |d<   |||d<   d|d}|V }d |d         D             S )aY  
    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 delta 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rJ   )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 delta call.
    :returns: Histogram.
    r   Nr   zBrowser.getHistogramr   	histogram)rJ   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)rJ   r   rB   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  )rJ   r   r,   r   rB   )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  I  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   
command_idc              #  f   K   t                      }|                                 |d<   d|d}|V }dS )zi
    Invoke custom browser commands used by telemetry.

    **EXPERIMENTAL**

    :param command_id:
    	commandIdzBrowser.executeBrowserCommandr   Nr   )r  r   r   r   s       r   execute_browser_commandr  w  sH       &&F$,,..F;1 H >>DDDr   urlc              #  B   K   t                      }| |d<   d|d}|V }dS )z
    Allows a site to use privacy sandbox features that require enrollment
    without the site actually being enrolled. Only supported on page targets.

    :param url:
    r  z+Browser.addPrivacySandboxEnrollmentOverrider   Nr   )r  r   r   r   s       r   'add_privacy_sandbox_enrollment_overrider    s;       &&FF5M? H >>DDDr   zBrowser.downloadWillBeginc                  T    e Zd ZU dZded<   ded<   ded<   ded<   edd            ZdS )DownloadWillBeginzM
    **EXPERIMENTAL**

    Fired when page is about to start a download.
    zpage.FrameIdframe_idr   r   r  suggested_filenamer   r   r   c           	          | t           j                            |d                   t          |d                   t          |d                   t          |d                             S )NframeIdr   r  suggestedFilename)r  r   r  r   )r   FrameIdr   r   r   s     r   r   zDownloadWillBegin.from_json  sa    s\++DO<<T&\""DK  "4(;#<==	
 
 
 	
r   N)r   r   r   r  r%   r&   r'   r<   rM   r(   r   r   r   r   r  r    sj           IIIHHH
 
 
 [
 
 
r   r  zBrowser.downloadProgressc                  T    e Zd ZU dZded<   ded<   ded<   ded<   edd            ZdS )DownloadProgresszc
    **EXPERIMENTAL**

    Fired when download makes progress. Last call has ``done`` == true.
    r   r   floattotal_bytesreceived_bytesstater   r   r   c           	          | t          |d                   t          |d                   t          |d                   t          |d                             S )Nr   
totalBytesreceivedBytesr+  )r   r)  r*  r+  )r   r(  r   s     r   r   zDownloadProgress.from_json  sY    sT&\""d<011 o!677d7m$$	
 
 
 	
r   N)r   r   r   r'  r%  r   r   r   r'  r'    sj           IIIJJJ
 
 
 [
 
 
r   r'  )NN)
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   )NNN)
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  rB   r   r   )r  r   r  r   r   r   )r  r   r   r   )r  r   r   r   )-
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r   r   r-   r,   Enumr2   rB   rO   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   <module>r6     s   # " " " " " * * * * * * * * ! ! ! ! ! !              	A 	A 	A 	A 	As 	A 	A 	A	9 	9 	9 	9 	9s 	9 	9 	9    $)   " )
 )
 )
 )
 )
 )
 )
 )
X$ $ $ $ $TY $ $ $N
 
 
 
 
	 
 
 
 +
 +
 +
 +
 +
 +
 +
 +
\    ty    
 
 
 
 
 
 
 
: 
 
 
 
 
 
 
 
J (,@D	    @ (,@D    8 AE    ( AE.204	    B AE    .   	 	 	 		 	 	 	   2/ / / /" '+'+@ @ @ @ @8 (,2 2 2 2 22, , , ,, 7;    8   . -1&*    0   &   $ ())

 
 
 
 
 
 
  *)
2 '((

 
 
 
 
 
 
  )(
 
 
r   