
    ,hV                    R   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	 	 d4	 	 	 	 	 	 	 	 	 d5dZ	 	 d4	 	 	 	 	 	 	 d6dZ	 d7	 	 	 d8dZ	 	 	 d9	 	 	 	 	 	 	 	 	 d:dZ	 d7	 	 	 	 	 d;d Zd<d!Zd<d"Zd<d#Z d=d$Z!d>d%Z"	 	 d4	 	 	 	 	 d?d&Z#	 d7	 	 	 	 	 d@d'Z$	 	 	 	 dAd(Z%	 d7	 	 	 dBd)Z&	 	 	 	 	 	 dCd*Z'	 	 d4	 	 	 	 	 dDd+Z(	 	 	 	 dEd,Z)	 	 	 	 dFd-Z* ed.      e G d/ d0                    Z+ ed1      e G d2 d3                    Z,y)G    )annotations   )event_classT_JSON_DICT)	dataclassN)page)targetc                  8     e Zd ZddZedd       Z fdZ xZS )BrowserContextIDc                    | S N selfs    q/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v135/browser.pyto_jsonzBrowserContextID.to_json           c                     | |      S r   r   clsjsons     r   	from_jsonzBrowserContextID.from_json       4yr   c                >    dj                  t        | 	               S )NzBrowserContextID({})formatsuper__repr__r   	__class__s    r   r   zBrowserContextID.__repr__   s    %,,UW-=-?@@r   )returnstr)r   r#   r"   r   __name__
__module____qualname__r   classmethodr   r   __classcell__r!   s   @r   r   r      s(      A Ar   r   c                  8     e Zd ZddZedd       Z fdZ xZS )WindowIDc                    | S r   r   r   s    r   r   zWindowID.to_json   r   r   c                     | |      S r   r   r   s     r   r   zWindowID.from_json    r   r   c                >    dj                  t        | 	               S )NzWindowID({})r   r    s    r   r   zWindowID.__repr__$   s    $$UW%5%788r   )r"   int)r   r0   r"   r,   r$   r*   s   @r   r,   r,      s&      9 9r   r,   c                  6    e Zd ZdZdZdZdZdZd Ze	d        Z
y)	WindowStatez*
    The state of the browser window.
    normal	minimized	maximized
fullscreenc                    | j                   S r   valuer   s    r   r   zWindowState.to_json1       zz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   (   s6     FIIJ  r   r2   c                  n    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y)Boundsz+
    Browser window bounds information
    Nztyping.Optional[int]lefttopwidthheightztyping.Optional[WindowState]window_statec                D   t               }| j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j
                  | 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    v99 99DL88((DK::! JJDM;;"![[DN("&"3"3";";"=Dr   c           
          | 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        j                  |d               S d       S )NrC   rD   rE   rF   rI   )rC   rD   rE   rF   rG   )r0   r2   r   r   s     r   r   zBounds.from_json[   s    &,nT&\"$$)TMDK t(/4#d7m$T*2d*:3tH~&GTX\G\..tM/BC
 	

 cg
 	
r   )r%   r&   r'   r<   rC   __annotations__rD   rE   rF   rG   r   r(   r   r   r   r   rB   rB   9   sa     "&D
% !%C	$ #'E& $(F ' 26L.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 dZ!d Z"d!Z#d"Z$d#Z%d$Z&d% Z'e(d&        Z)y')(PermissionTypearaudioCaptureautomaticFullscreenbackgroundFetchbackgroundSynccameraPanTiltZoomcapturedSurfaceControlclipboardReadWriteclipboardSanitizedWritedisplayCapturedurableStoragegeolocationhandTrackingidleDetectionkeyboardLock
localFontsmidi	midiSysexnfcnotificationspaymentHandlerperiodicBackgroundSyncpointerLockprotectedMediaIdentifiersensors	smartCardspeakerSelectionstorageAccesstopLevelStorageAccessvideoCapturevrwakeLockScreenwakeLockSystemwebAppInstallationwebPrinting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'   ARAUDIO_CAPTUREAUTOMATIC_FULLSCREENBACKGROUND_FETCHBACKGROUND_SYNCCAMERA_PAN_TILT_ZOOMCAPTURED_SURFACE_CONTROLCLIPBOARD_READ_WRITECLIPBOARD_SANITIZED_WRITEDISPLAY_CAPTUREDURABLE_STORAGEGEOLOCATIONHAND_TRACKINGIDLE_DETECTIONKEYBOARD_LOCKLOCAL_FONTSMIDI
MIDI_SYSEXNFCNOTIFICATIONSPAYMENT_HANDLERPERIODIC_BACKGROUND_SYNCPOINTER_LOCKPROTECTED_MEDIA_IDENTIFIERSENSORS
SMART_CARDSPEAKER_SELECTIONSTORAGE_ACCESSTOP_LEVEL_STORAGE_ACCESSVIDEO_CAPTUREVRWAKE_LOCK_SCREENWAKE_LOCK_SYSTEMWEB_APP_INSTALLATIONWEB_PRINTINGWINDOW_MANAGEMENTr   r(   r   r   r   r   rO   rO   f   s    	B"M0(&O.7/ 9&O&OK"M$N"MKDJ
C#M&O7 L!;GJ*$N6"M	B''/ L*  r   rO   c                  .    e Zd ZdZdZdZd Zed        Zy)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      s*    GFF  r   r   c                  x    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	ded
<   d Z
ed        Zy)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allow_without_gesturepan_tilt_zoomc                F   t               }| j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j
                  | j
                  |d<   | j                  | j                  |d<   |S )Nr   r   userVisibleOnlyallowWithoutSanitizationallowWithoutGesturepanTiltZoom)rJ   r   r   r   r   r   r   rK   s     r   r   zPermissionDescriptor.to_json   s    vyyV::! JJDM!!-&*&<&<D"#**6/3/N/ND+,%%1*.*D*DD&')"&"4"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 d|v rt        |d               S d       S )Nr   r   r   r   r   r   )r   r   r   r   r   r   )r#   boolr   s     r   r   zPermissionDescriptor.from_json   s    T&\")0D$tG}%d?PTX?Xd4(9#:;^bQkosQstD1K,L'My}G\`dGd$t,A'B"Cjn7D7L$tM23
 	
 SW
 	
r   )r%   r&   r'   r<   rM   r   r   r   r   r   r   r(   r   r   r   r   r   r      sk     I $(E ' 04,3 9= 5< 4807 ,0M(/ 
 
r   r   c                  .    e Zd ZdZdZdZd Zed        Zy)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      s-     &O'  r   r   c                  F    e Zd ZU dZded<   ded<   ded<   d Zed        Zy)	Bucketz"
    Chrome histogram bucket.
    r0   lowhighcountc                t    t               }| j                  |d<   | j                  |d<   | j                  |d<   |S )Nr   r   r   )rJ   r   r   r   rK   s     r   r   zBucket.to_json   s5    vhhUyyV

Wr   c                `     | t        |d         t        |d         t        |d               S )Nr   r   r   )r   r   r   )r0   r   s     r   r   zBucket.from_json   s3    DK T&\"d7m$
 	
r   Nr%   r&   r'   r<   rM   r   r(   r   r   r   r   r   r      s5     
H I J 
 
r   r   c                  P    e Zd ZU dZded<   ded<   ded<   ded<   d	 Zed
        Zy)	Histogramz
    Chrome histogram.
    r#   r   r0   sum_r   ztyping.List[Bucket]bucketsc                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  D cg c]  }|j                          c}|d<   |S c c}w )Nr   sumr   r   )rJ   r   r   r   r   r   )r   r   is      r   r   zHistogram.to_json  sX    vyyViiU

W04=1199;=Y >s   A%c                     | t        |d         t        |d         t        |d         |d   D cg c]  }t        j                  |       c}      S c c}w )Nr   r   r   r   )r   r   r   r   )r#   r0   r   r   )r   r   r   s      r   r   zHistogram.from_json  sV    T&\"T%[!d7m$26y/BQV%%a(B	
 	
 Cs   ANr   r   r   r   r   r     s=     I I J !  
 
r   r   c              #     K   t               }| j                         |d<   |j                         |d<   |||d<   ||j                         |d<   d|d}|}yw)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.
    
permissionsettingNoriginbrowserContextIdzBrowser.setPermissionmethodparamsrJ   r   )r   r   r   browser_context_idr   cmd_dictr   s          r   set_permissionr   &  ss       &F%--/F<)F9!x%%7%?%?%A!")H >Ds   AAc              #     K   t               }| D cg c]  }|j                          c}|d<   |||d<   ||j                         |d<   d|d}|}yc c}w w)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.
    permissionsNr   r   zBrowser.grantPermissionsr   r   )r   r   r   r   r   r   r   s          r   grant_permissionsr   D  so      &F2=>QQYY[>F=!x%%7%?%?%A!",H >D ?s   AA1Ac              #  \   K   t               }| | j                         |d<   d|d}|}yw)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   _  s?      &F%%7%?%?%A!",H >Ds   *,c              #     K   t               }| |d<   ||j                         |d<   |||d<   |||d<   d|d}|}yw)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).
    behaviorNr   downloadPatheventsEnabledzBrowser.setDownloadBehaviorr   r   )r   r   download_pathevents_enabledr   r   r   s          r   set_download_behaviorr   q  si       &F!F:%%7%?%?%A!" !.~!"0/H >Ds   =?c              #  f   K   t               }| |d<   ||j                         |d<   d|d}|}yw)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.
    guidNr   zBrowser.cancelDownloadr   r   )r   r   r   r   r   s        r   cancel_downloadr     sH      &FF6N%%7%?%?%A!"*H >Ds   /1c               #     K   ddi} | }yw)z#
    Close browser gracefully.
    r   zBrowser.closeNr   r   r   s     r   closer     s     
 	/H >D   
c               #     K   ddi} | }yw)zC
    Crashes browser on the main thread.

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

    **EXPERIMENTAL**
    r   zBrowser.crashGpuProcessNr   r   s     r   crash_gpu_processr     s      	+H >Dr   c               #     K   ddi} | }t        |d         t        |d         t        |d         t        |d         t        |d         fS w)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     si      	&H >DD"#$DODDD s   AAc               #  \   K   ddi} | }|d   D cg c]  }t        |       c}S c c}w w)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.getBrowserCommandLine	argumentsr   )r   r   r   s      r   get_browser_command_liner     s;      	1H >D -.qCF...s   ,',c              #     K   t               }| | |d<   |||d<   d|d}|}|d   D cg c]  }t        j                  |       c}S c c}w w)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.
    querydeltazBrowser.getHistogramsr   
histogramsrJ   r   r   )r   r   r   r   r   r   s         r   get_histogramsr     sg      &Fww)H >D,0,>?qI"???s   )AA
Ac              #  x   K   t               }| |d<   |||d<   d|d}|}t        j                  |d         S w)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   r   zBrowser.getHistogramr   	histogramr   )r   r   r   r   r   s        r   get_histogramr    sS      &FF6Nw(H >DtK011s   8:c              #     K   t               }| j                         |d<   d|d}|}t        j                  |d         S w)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   )	window_idr   r   r   s       r   get_window_boundsr  %  sM      &F"**,F:+H >DDN++s   ?Ac              #     K   t               }| | j                         |d<   d|d}|}t        j                  |d         t        j                  |d         fS w)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.
    targetIdzBrowser.getWindowForTargetr   r  r  )rJ   r   r,   r   rB   )	target_idr   r   r   s       r   get_window_for_targetr  :  sm      &F&..0z.H >D4
+,h( s   AAc              #  ~   K   t               }| j                         |d<   |j                         |d<   d|d}|}yw)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  V  sI      &F"**,F:~~'F8+H >Ds   ;=c              #  N   K   t               }| | |d<   |||d<   d|d}|}yw)z
    Set dock tile details, platform-specific.

    **EXPERIMENTAL**

    :param badge_label: *(Optional)*
    :param image: *(Optional)* Png encoded image.
    N
badgeLabelimagezBrowser.setDockTiler   rJ   )badge_labelr  r   r   r   s        r   set_dock_tiler  l  sD      &F*|w'H >Ds   #%c              #  X   K   t               }| j                         |d<   d|d}|}yw)zi
    Invoke custom browser commands used by telemetry.

    **EXPERIMENTAL**

    :param command_id:
    	commandIdzBrowser.executeBrowserCommandr   Nr   )
command_idr   r   r   s       r   execute_browser_commandr    s8      &F$,,.F;1H >Ds   (*c              #  <   K   t               }| |d<   d|d}|}yw)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:
    urlz+Browser.addPrivacySandboxEnrollmentOverrider   Nr  )r  r   r   r   s       r   'add_privacy_sandbox_enrollment_overrider    s.      &FF5M?H >Ds   zBrowser.downloadWillBeginc                  L    e Zd ZU dZded<   ded<   ded<   ded<   ed
d       Zy	)DownloadWillBeginzM
    **EXPERIMENTAL**

    Fired when page is about to start a download.
    zpage.FrameIdframe_idr#   r   r  suggested_filenamec           	          | t         j                  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  sK    \\++DO<T&\"DK "4(;#<=	
 	
r   N)r   r   r"   r  r%   r&   r'   r<   rM   r(   r   r   r   r   r  r    s1     
I	H
 
r   r  zBrowser.downloadProgressc                  L    e Zd ZU dZded<   ded<   ded<   ded<   ed
d       Zy	)DownloadProgresszc
    **EXPERIMENTAL**

    Fired when download makes progress. Last call has ``done`` == true.
    r#   r   floattotal_bytesreceived_bytesstatec           	     z     | 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  sA    T&\"d<01 o!67d7m$	
 	
r   N)r   r   r"   r%  r#  r   r   r   r%  r%    s1     IJ
 
r   r%  )NN)
r   r   r   r   r   typing.Optional[str]r   !typing.Optional[BrowserContextID]r"   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])r   ztyping.List[PermissionType]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"   zQtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[str, str, str, str, str]])r"   z<typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]])r   r-  r   r   r"   zBtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[Histogram]])r   r#   r   r   r"   z5typing.Generator[T_JSON_DICT, T_JSON_DICT, Histogram])r  r,   r"   z2typing.Generator[T_JSON_DICT, T_JSON_DICT, Bounds])r
  z typing.Optional[target.TargetID]r"   zJtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[WindowID, Bounds]])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   r0   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>r7     s$   # * !    	As 	A	9s 	9$)) " )
 )
 )
X+TYY +\
		 
 1
 1
 1
htyy  
 
 
: 
 
 
J (,@D	(" % >	
 
8@ (,@D0$ > 
8	8 AE=	7( AE.204	= , .	
 
8B AE= 
8.		2/" '+'+@#@$@ 
J@8 (,22$2 
=22,,	9,, 7;3	Q8 
8. -1&*)# 
80$	7&	7$ ()

 
  *
2 '(

 
  )
r   