o
    Pj                     @   s  d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZ d dlmZ d dlm Z  d dl!m"Z"m#Z#m$Z$ d d	l%m&Z& d d
l'm(Z(m)Z) d dl*m+Z+ d dl,m-Z-m.Z. d dl/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZT d dlUmVZVmWZWmXZX d dlYmZZZm[Z[m\Z\m]Z]m^Z^ d dl_m`Z`maZambZbmcZcmdZdmeZe d dlfmgZg d dlhmiZi d dljmkZk d dllmmZm e
r5d dlnmoZo d dlpmqZq d dlrmsZsmtZt d dl_muZu G dd  d ZvG d!d" d"e"ZwG d#d$ d$e"ZxG d%d& d&e"Zyd'eeKeLf d(eez fd)d*Z{d+ezd(ezfd,d-Z|dS ).    N)Path)SimpleNamespace)TYPE_CHECKINGAny	AwaitableCallableDictListLiteralOptionalPatternSequenceUnioncast)AriaRoleFilePayload	FloatRect
PdfMarginsPositionViewportSize)Artifact)Clock)ChannelOwnerfrom_channelfrom_nullable_channel)ConsoleMessage)
DisposableDisposableStub)Download)ElementHandledetermine_screenshot_type)ErrorTargetClosedErroris_target_closed_error)EventContextManagerImpl)FileChooser)Frame)LocatorHandlerGreenlet)	HarRouter)ColorSchemeContrastDocumentLoadStateForcedColorsHarModeKeyboardModifierMouseButtonReducedMotionRouteFromHarNotFoundPolicyRouteHandlerRouteHandlerCallbackTimeoutSettingsURLMatchURLMatchRequestURLMatchResponseWebSocketRouteHandlerCallbackasync_readfileasync_writefilelocals_to_paramsmake_dirs_for_fileparse_errorserialize_errorurl_matches)KeyboardMouseTouchscreen)JSHandleSerializableadd_source_url_to_scriptparse_resultserialize_argument)RequestResponseRouteWebSocketRouteWebSocketRouteHandlerserialize_headers)
Screencast)Video)Waiter)
WebStorage)BrowserContext)APIRequestContext)FrameLocatorLocator)	WebSocketc                   @   s   e Zd ZU ded< eedgef edef f ed< eedf ed< dddedef deedf ddfdd	Zdefd
dZ	dS )LocatorHandlerrU   locator.handlerNtimesreturnc                 C   s   || _ || _|| _d S N)rX   _handlerrZ   )selfrX   rY   rZ    r_   K/home/thesage/.local/lib/python3.10/site-packages/playwright/_impl/_page.py__init__x   s   
zLocatorHandler.__init__c                 C   s.   t t| jj}|dkr|  S | | jS Nr   )leninspect	signaturer]   
parametersrX   )r^   	arg_countr_   r_   r`   __call__   s   zLocatorHandler.__call__)
__name__
__module____qualname____annotations__r   r   r   intra   rh   r_   r_   r_   r`   rW   s   s   
 "


rW   c                !       s:  e Zd ZU edi ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&Zeed'< eed(< eed)< d*e	d+e
d,e
d-ed.d/f
 fd0d1Zd.e
fd2d3Zd4ed.d/fd5d6Zd4ed.d/fd7d8Zd9ed.d/fd:d;Zd<ed.d/fd=d>ZddAdBZddCdDZddEdFZddGdHZdIed.d/fdJdKZdIed.d/fdLdMZeddOdPZed.efdQdRZd.e d  fdSdTZ!ed.efdUdVZ"ddWe
dXe#d.e e fdYdZZ$ed.e%e fd[d\Z&d]e'd.d/fd^d_Z(d]e'd.d/fd`daZ)	/ddbe
dce*d.e e+ fdddeZ,dbe
d.e%e+ fdfdgZ-	/	/	/ddbe
d]e'dhe.di dce*d.e e+ f
djdkZ/	/ddbe
dce*d]e'd.e*fdldmZ0	/ddbe
dce*d]e'd.e*fdndoZ1	/ddbe
dce*d]e'd.e*fdpdqZ2	/ddbe
dce*d]e'd.e*fdrdsZ3	/ddbe
dce*d]e'd.e*fdtduZ4	/ddbe
dce*d]e'd.e*fdvdwZ5	/	/	/ddbe
d+e
dxed]e'dce*d.d/fdydzZ6dd{e
d|e7d.efd}d~Z8	/dd{e
d|e7d.e9fddZ:	/	/ddbe
d{e
d|e7dce*d.ef
ddZ;	/ddbe
d{e
d|e7d.efddZ<	/	/	/	/ddXe
de=e
e>f de
d+e
d.e+f
ddZ?	/ddXe
de=e
e>f de
d.e+fddZ@dWe
deAd.eBfddZCdWe
deAd.eBfddZDdee
e
f d.d/fddZEed.e
fddZFd.e
fddZG	/	/dde
d]e'deHd.d/fddZI	/	/	/ddXe
d]e'deHde
d.e eJ f
ddZK	/	/dd]e'deHd.e eJ fddZL	/	/ddhe.d d]e'd.d/fddZM	/	/ddXe#deHd]e'd.d/fddZN	/dde
deAd]e'd.efddZO	/	/dd]e'deHd.e eJ fddZP	/	/dd]e'deHd.e eJ fddZQdddZR	/	/	/	/	/dde.d deSdeTdeUdeVd.d/fddZWdeXd.d/fddZYed.e eX fddZZdddZ[dddZ\	/dde
de=e
e>f d.eBfddZ]	/ddXe#de^de_d.e`fddƄZa	/ddXe#de e^ d.d/fddȄZb	/dde%ec de%ec de.d d.d/fdd΄ZddXe#deed.d/fddЄZfddd҄Zg	/dde.d d.d/fddԄZh	/	/	/	/	/dde=e>e
f dXe=eie
 e
f dejde*de.d dekd.d/fdd܄ZldddބZmdddZn	/	/	/	/	/	/	/	/	/	/	/	/	/dd]e'd+e.d de=e
e>f de_de*de*deode.d de.d de.d depd de
de
d.eqfddZrd.e
fddZs	/	/	/	/dd]e'de_de.d de*d.e
f
ddZtdde*de
d.d/fddZud.e*fddZv	/	/	/	/	/	/	/	/	/	/ddbe
d epew dexde'deyde_d]e'de*de*de*dce*d.d/fdd	Zz	/	/	/	/	/	/	/	/	/ddbe
d epew dexde'deyd]e'de*de*dce*de*d.d/fd
dZ{	/	/	/	/	/	/	/ddbe
d epew dexd]e'de*de*dce*de*d.d/fddZ|	/	/	/	/ddbe
de
d]e'de*dce*de*d.d/fddZ}	/	/	/	/ddbe
de=e
eie
 f de=e
eie
 f ddddd.dfddZ~	/dde=e
eie
 f de*d.dfddZ	/dde=e
eie
 f de*d.dfddZ	/dde=e
eie
 f de*d.dfddZ	/	/	/	/	/	/	/	/	/	/dded e*d!e*d"e*d#e*d$e_dWe=e
eie
 f d%e*d&e*de*d'e=e
eie
 f d.dfd(d)Zd*e=e
eie
 f d.dfd+d,Z	/dde=e
eie
 f de*d.dfd-d.Z	/dde=e
eie
 f de*d.dfd/d0Zdbe
d.d1fd2d3Z	/ddbe
dce*d]e'd.d/fd4d5Z	/ddbe
dce*d]e'd.e e
 fd6d7Z	/ddbe
dce*d]e'd.e
fd8d9Z	/ddbe
dce*d]e'd.e
fd:d;Z	/ddbe
dWe
dce*d]e'd.e e
 f
d<d=Z	/	/	/	/	/	/	/ddbe
d epew dexd]e'de*de*dce*de*d.d/fd>d?Z	/	/	/	/	/	/	/	/dÐd@e
dAe
dBexdCexde*de*d]e'dce*de*dDe_d.d/fdEdFZ	/	/	/	/	/	/	/	/ddbe
de=e
epe
 f dGe=e_epe_ f dHe=e
epe
 f dIe=dJepdJ f d]e'de*de*dce*d.e%e
 fdKdLZ	/ddbe
dce*d]e'd.e
fdMdNZ	/	/	/ddbe
dOe=e
e>eepe=e
e>f  epe f d]e'dce*de*d.d/fdPdQZ	/	/	/	/ddbe
de
de'd]e'de*dce*d.d/fdRdSZ	/	/	/	/ddbe
dTe
de'd]e'de*dce*d.d/fdUdVZ	/	/	/	/	/	/ddbe
dexd]e'de*de*dce*de*d.d/fdWdXZ	/	/	/	/	/	/ddbe
dexd]e'de*de*dce*de*d.d/fdYdZZd]e'd.d/fd[d\Z	/	/	/dd{e
d|e7d]e'd]e=e'e.d^ f d.e9f
d_d`Zed.e%d% fdadbZedŐdddeZddfdgZ	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/dde'dhe*die
dje
dke*dle*dme
dne
doe=e
e'f dpe=e
e'f dqe*drede=e
e>f dse*dte*d.eqf dudvZed.e e fdwdxZed.efdydzZed.efd{d|Zed.efd}d~Zd.efddZ	/	/dde
deAd]e'd.efddZ	/	/	/dde
deAd]e'de
d.ef
ddZ	/	/ddeAege*f d]e'd.ee fddZ	/	/ddeAege*f d]e'd.ee fddZ	/	/ddeAege*f d]e'd.ee fddZ	/	/	/ddXe#deHd]e'd.eeJ fddZ	/	/ddeAd ge*f d]e'd.ed  fddZ	/dded]e'd.ee fddZ	/	/ddeAdge*f d]e'd.ee fddZ	/dded]e'd.eeJ fddZ	/	/ddeAd#ge*f d]e'd.ed# fddZ	/	/ddeAd%ge*f d]e'd.ed% fddZ	/	/	/	/	/	/ddbe
d e*dexd]e'de*de*dce*de*d.d/fddZ	/	/dddde=eAdgef eAg ef f de*de_d.d/f
ddZde
d.d/fddZdǐddZd.e%e fddZ	/dde.d d.e%e fddZ	/dde.d d.e%e fddZdddZdddZÐdȐddZĐdddZŇ  ZS (  PageClosecloseCrashcrashConsoleconsoleDialogdialogr   downloadr%   filechooserDOMContentLoadeddomcontentloaded	PageError	pageerrorrH   requestrI   responseRequestFailedrequestfailedRequestFinishedrequestfinishedFrameAttachedframeattachedFrameDetachedframedetachedFrameNavigatedframenavigatedLoadloadPopuppopuprV   	websocketWorkerworkerkeyboardmousetouchscreenparenttypeguidinitializerr[   Nc                    s  t  |||| td| _t j _t j _t	 j _
t|d  _  j_ jg _|d _d _g  _i  _g  _g  _d  _t jj _t ttt t|d _t  _t  d _!t  d _"tdt|d	 _#d  _$d _%g  _&i  _' j(d
 fdd  j(d fdd  j(d fdd  j(d fdd  j(d fdd  j(d fdd  j(d fdd  j(d fdd  j(d fdd  j(d fdd  j(d j)  j(d  fd!d  j(d" fd#d t*+  _, (t-j.j/ fd$d  (t-j.j0 fd%d  1t-j.j2d&t-j.j3d't-j.j4d(t-j.j5d)t-j.j6d*t-j.j7d+t-j.j8di d S ),NrR   	mainFrameviewportSizeFvideolocalsessionrn   openerbindingCallc                         t| d S )Nbinding)_on_bindingr   paramsr^   r_   r`   <lambda>       zPage.__init__.<locals>.<lambda>rp   c                          S r\   	_on_close_r   r_   r`   r          rr   c                    r   r\   )	_on_crashr   r   r_   r`   r      r   rw   c                    s
     | S r\   )_on_downloadr   r   r_   r`   r         
 fileChooserc                    s$     tjjt t| d | d S )Nelement
isMultiple)emitrn   Eventsr%   r   r   r   r_   r`   r      s    frameAttachedc                    r   Nframe)_on_frame_attachedr   r   r   r_   r`   r      r   frameDetachedc                    r   r   )_on_frame_detachedr   r   r   r_   r`   r      r   locatorHandlerTriggeredc                    s    j  | d S )Nuid)_loopcreate_task_on_locator_handler_triggeredr   r   r_   r`   r      s    routec                        j  t| d S )Nr   )r   r   	_on_router   r   r   r_   r`   r          webSocketRoutec                    r   )Nr   )r   r   _on_web_socket_router   r   r   r_   r`   r      r   viewportSizeChanged	webSocketc                    s     tjjt| d S )Nr   )r   rn   r   rV   r   r   r   r_   r`   r      s    r   c                    r   Nr   )
_on_workerr   r   r   r_   r`   r      r   c                    s    j  s j   S d S r\   )_closed_or_crashed_futuredone
set_result_close_error_with_reasonr   r   r_   r`   r      s
   c                    s    j  s j t S d S r\   )r   r   r   r"   r   r   r_   r`   r     s   rt   rv   r}   r~   requestFinishedrequestFailed)9superra   r   _browser_contextr@   _channelr   rA   r   rB   r   r   _main_frame_page_framesget_viewport_size
_is_closed_workers	_bindings_routes_web_socket_routes_owned_contextr4   _timeout_settingsrO   r   r   r   _videorN   _screencastrQ   _local_storage_session_storage_opener_close_reason_close_was_called_har_routers_locator_handlerson_on_viewport_size_changedasyncioFuturer   rn   r   ro   rq   "_set_event_to_subscription_mappingrs   ru   rH   rI   r   r   r%   r^   r   r   r   r   	__class__r   r`   ra      s   



	









	zPage.__init__c                 C      d| j dS )Nz
<Page url=>urlr   r_   r_   r`   __repr__     zPage.__repr__r   c                 C   s4   | |_ | j| | tjj| | jd| d S )Nr   )r   r   appendr   rn   r   r   r   r^   r   r_   r_   r`   r     s   zPage._on_frame_attachedc                 C   s4   | j | d|_| tjj| | jd| d S )NTr   )r   remove	_detachedr   rn   r   r   r   r   r_   r_   r`   r      s   zPage._on_frame_detachedr   c                    s    j |_ j }|D ]e} js j jr d S ||jjs q| jvr&q|j	r/ j
| z"||I d H }W t jdkrQd fdd}t j|d nt jdkrkd fdd}t j|d w w |rq d S q j|I d H  d S )Nr   r[   c                      s,   z
   I d H  W d S  ty   Y d S w r\   )_update_interception_patternsr!   r_   r   r_   r`   ._update_interceptor_patterns_ignore_exceptions8  s   zFPage._on_route.<locals>._update_interceptor_patterns_ignore_exceptionsTr[   N)context_contextr   copyr   _closing_or_closedmatchesr}   r   will_expirer   handlerc   r   r   _connectionwrap_api_callr   r   )r^   r   route_handlersroute_handlerhandledr   r_   r   r`   r   &  sD   

zPage._on_routeweb_socket_routec                    sJ   t  fdd| jD d }|r| I d H  d S | j I d H  d S )Nc                 3   s     | ]}|  jr|V  qd S r\   )r   r   ).0r  r  r_   r`   	<genexpr>I  s    

z,Page._on_web_socket_route.<locals>.<genexpr>)nextr   r  r   r   )r^   r  r  r_   r
  r`   r   G  s   
zPage._on_web_socket_routebinding_callBindingCallc                 C   s6   | j |jd }|rt|| | j| d S )Nname)r   r   _initializerr   r   callr   r   )r^   r  funcr_   r_   r`   r   U  s   zPage._on_bindingc                 C   s&   | j | | |_| tjj| d S r\   )r   r   r   r   rn   r   r   )r^   r   r_   r_   r`   r   [  s   zPage._on_workerc                 C   sJ   d| _ | | jjv r| jj|  |   | tjj|  | jd|  d S )NT	pageclose)	r   r   _pagesr   _dispose_har_routersr   rn   r   ro   r   r_   r_   r`   r   `  s   zPage._on_closec                 C   s   |  tjj|  d S r\   )r   rn   r   rq   r   r_   r_   r`   r   h  s   zPage._on_crashr   c                 C   sR   |d }|d }t tt|d }t| |||}| tjj| | jd| d S )Nr   suggestedFilenameartifactrw   )r   r   r   r   r   rn   r   r   )r^   r   r   suggested_filenamer  rw   r_   r_   r`   r   k  s   zPage._on_downloadc                 C   s   |d | _ d S )Nr   r   )r^   r   r_   r_   r`   r   s  r   zPage._on_viewport_size_changedrR   c                 C      | j S r\   )r   r   r_   r_   r`   r   v     zPage.contextc                 C      | j jS r\   )r   clockr   r_   r_   r`   r  z     z
Page.clockc                    s   | j r| j  rd S | j S r\   )r   	is_closedr   r_   r_   r`   r   ~  s   zPage.openerc                 C   r  r\   )r   r   r_   r_   r`   
main_frame  r  zPage.main_framer  r   c                 C   sD   | j D ]}|r|j|kr|  S |rt| jj|j|r|  S qd S r\   )r   r  r?   r   	_base_urlr   )r^   r  r   r   r_   r_   r`   r     s   
z
Page.framec                 C   
   | j  S r\   )r   r   r   r_   r_   r`   frames     
zPage.framestimeoutc                 C      | j | d S r\   )r   set_default_navigation_timeoutr^   r%  r_   r_   r`   r'       z#Page.set_default_navigation_timeoutc                 C   r&  r\   )r   set_default_timeoutr(  r_   r_   r`   r*    r)  zPage.set_default_timeoutselectorstrictc                       | j ||I d H S r\   )r   query_selector)r^   r+  r,  r_   r_   r`   r.    s   zPage.query_selectorc                    s   | j |I d H S r\   )r   query_selector_allr^   r+  r_   r_   r`   r/    s   zPage.query_selector_allstate)attacheddetachedhiddenvisiblec                        | j jdi tt I d H S Nr_   )r   wait_for_selectorr;   locals)r^   r+  r%  r1  r,  r_   r_   r`   r8       zPage.wait_for_selectorc                    r6  r7  )r   
is_checkedr;   r9  r^   r+  r,  r%  r_   r_   r`   r;       zPage.is_checkedc                    r6  r7  )r   is_disabledr;   r9  r<  r_   r_   r`   r>    r=  zPage.is_disabledc                    r6  r7  )r   is_editabler;   r9  r<  r_   r_   r`   r?    r=  zPage.is_editablec                    r6  r7  )r   
is_enabledr;   r9  r<  r_   r_   r`   r@    r=  zPage.is_enabledc                       | j j||dI d H S N)r+  r,  )r   	is_hiddenr<  r_   r_   r`   rC       zPage.is_hiddenc                    rA  rB  )r   
is_visibler<  r_   r_   r`   rE    rD  zPage.is_visible	eventInitc                    r6  r7  )r   dispatch_eventr;   r9  )r^   r+  r   rF  r%  r,  r_   r_   r`   rG    s   zPage.dispatch_event
expressionargc                    r-  r\   )r   evaluater^   rH  rI  r_   r_   r`   rJ    s   zPage.evaluatec                    r-  r\   )r   evaluate_handlerK  r_   r_   r`   rL    s   zPage.evaluate_handlec                    s   | j ||||I d H S r\   )r   eval_on_selector)r^   r+  rH  rI  r,  r_   r_   r`   rM    s   
zPage.eval_on_selectorc                    s   | j |||I d H S r\   )r   eval_on_selector_all)r^   r+  rH  rI  r_   r_   r`   rN    s   zPage.eval_on_selector_allpathcontentc                    r6  r7  )r   add_script_tagr;   r9  )r^   r   rO  rP  r   r_   r_   r`   rQ    r:  zPage.add_script_tagc                    r6  r7  )r   add_style_tagr;   r9  )r^   r   rO  rP  r_   r_   r`   rR    r=  zPage.add_style_tagcallbackc                    s   |  | fddI d H S )Nc                    s    | S r\   r_   )sourceargsrS  r_   r`   r     r   z&Page.expose_function.<locals>.<lambda>)expose_bindingr^   r  rS  r_   rV  r`   expose_function      zPage.expose_functionc                    sb   || j v rtd| d|| jj v rtd| d|| j |< t| jdd t|dI d H S )Nz
Function "z" has been already registeredz4" has been already registered in the browser contextexposeBinding)r  )r   r!   r   r   r   senddictrX  r_   r_   r`   rW    s   


zPage.expose_bindingheadersc                    s&   | j dd tt|dI d H  d S )NsetExtraHTTPHeaders)r^  )r   r\  r]  rM   )r^   r^  r_   r_   r`   set_extra_http_headers  s   zPage.set_extra_http_headersc                 C   r  r\   )r   r   r   r_   r_   r`   r     r  zPage.urlc                       | j  I d H S r\   )r   rP  r   r_   r_   r`   rP       zPage.contenthtml	waitUntilc                    r6  r7  )r   set_contentr;   r9  )r^   rc  r%  rd  r_   r_   r`   re  !     zPage.set_contentrefererc                    r6  r7  )r   gotor;   r9  )r^   r   r%  rd  rg  r_   r_   r`   rh  )  r:  z	Page.gotoc                    &   t | jd| jjtt I d H S )Nreloadr   r   r\  r   navigation_timeoutr;   r9  r^   r%  rd  r_   r_   r`   rj  2     zPage.reload)rz   r   networkidlec                    r6  r7  )r   wait_for_load_stater;   r9  )r^   r1  r%  r_   r_   r`   rp  ?  s   zPage.wait_for_load_statec                    r6  r7  )r   wait_for_urlr;   r9  r^   r   rd  r%  r_   r_   r`   rq  F  rf  zPage.wait_for_urlevent	predicatec              	      sN   |  |||4 I d H }W d   I d H  n1 I d H sw   Y  |I d H S r\   expect_event)r^   rs  rt  r%  
event_infor_   r_   r`   wait_for_eventN  s
   (
zPage.wait_for_eventc                    ri  )NgoBackrk  rm  r_   r_   r`   go_backU  rn  zPage.go_backc                    ri  )N	goForwardrk  rm  r_   r_   r`   
go_forwardb  rn  zPage.go_forwardc                       | j dd I d H  d S )N	requestGCr   r\  r   r_   r_   r`   
request_gco     zPage.request_gcmedia)nullprintscreencolorSchemereducedMotionforcedColorscontrastc                    s   t t }d|v r|d dkrdn||d< d|v r&|d dkr"dn||d< d|v r6|d dkr2dn||d< d|v rF|d dkrBdn||d< d|v rV|d dkrRdn||d< | jdd |I d H  d S )	Nr  r  zno-overrider  r  r  r  emulateMedia)r;   r9  r   r\  )r^   r  r  r  r  r  r   r_   r_   r`   emulate_mediar  s"   
zPage.emulate_mediar   c                    s(   || _ | jdd tt I d H  d S )NsetViewportSize)r   r   r\  r;   r9  )r^   r   r_   r_   r`   set_viewport_size  s   zPage.set_viewport_sizec                 C   r  r\   r  r   r_   r_   r`   viewport_size  r  zPage.viewport_sizec                    r}  )NbringToFrontr  r   r_   r_   r`   bring_to_front  r  zPage.bring_to_frontc                    r}  )NhideHighlightr  r   r_   r_   r`   hide_highlight  r  zPage.hide_highlightscriptc                    sP   |rt t|I d H  |}t|tstdt| jdd t	|dI d H S )Nz1Either path or script parameter must be specifiedaddInitScript)rT  )
rE   r9   decode
isinstancestrr!   r   r   r\  r]  )r^   r  rO  r_   r_   r`   add_init_script  s   
zPage.add_init_scriptrY   rZ   c              	      sN   j dtjj jrdnd|  I d H  t fddS )Nr   TFc                      s     S r\   )unrouter_   rY   r^   r   r_   r`   r     s    zPage.route.<locals>.<lambda>)r   insertr2   r   r!  _dispatcher_fiberr   r   )r^   r   rY   rZ   r_   r  r`   r     s   
z
Page.routec                    s\   g }g }| j D ]}|j|ks|r|j|kr|| q|| q| ||dI d H  d S )Ndefault)r   r   rY   r   _unroute_internal)r^   r   rY   removed	remainingr   r_   r_   r`   r    s   
zPage.unrouter  r  behavior)r  ignoreErrorswaitc                    sH   || _  d ur dkrtjt fdd| I d H  |  I d H  d S )Nr  c                    s
   |   S r\   )stop)r   r  r_   r`   r     r   z(Page._unroute_internal.<locals>.<lambda>)r   r   gathermapr   )r^   r  r  r  r_   r  r`   r    s   

zPage._unroute_internalc                    s.   | j dt| jj|| |  I d H  d S rb   )r   r  rL   r   r!  (_update_web_socket_interception_patterns)r^   r   rY   r_   r_   r`   route_web_socket  s   zPage.route_web_socketc                 C   s   | j D ]}|  qg | _ d S r\   )r   dispose)r^   routerr_   r_   r`   r    s   


zPage._dispose_har_routersc                    s$   |  | jg |I d H  |   d S r\   )r  r   r  )r^   r  r_   r_   r`   unroute_all  s   zPage.unroute_allharnotFoundupdateupdateContent)attachembed
updateModec                    sl   |r| j jj|| |||dI d H  d S tj| jjt||pd|dI d H }| j	| |
| I d H  d S )N)r  pager   update_contentupdate_modeabort)local_utilsfilenot_found_actionurl_matcher)r   _tracing_record_into_harr(   creater  r  r  r   r   add_page_route)r^   r  r   r  r  r  r  r  r_   r_   r`   route_from_har  s$   	zPage.route_from_harc                    ,   t | j}| jdd d|iI d H  d S )NsetNetworkInterceptionPatternspatterns)r2   prepare_interception_patternsr   r   r\  r^   r  r_   r_   r`   r   	  s   z"Page._update_interception_patternsc                    r  )N setWebSocketInterceptionPatternsr  )rL   r  r   r   r\  r  r_   r_   r`   r    s   z-Page._update_web_socket_interception_patterns)jpegpngqualityomitBackgroundfullPageclip
animations)allowdisabledcaret)hideinitialscale)cssdevicemaskrU   	maskColorstylec                    s   t t }d|v rd|vrt|d |d< |d= d|v r*ttdd |d |d< | jd| jj|I d H }t	
|}|rJt| t||I d H  |S )NrO  r   r  c                 S   s   | j j| jdS )N)r   r+  )_framer   	_selector)rX   r_   r_   r`   r   3  s   z!Page.screenshot.<locals>.<lambda>
screenshot)r;   r9  r    listr  r   r\  r   r%  base64	b64decoder<   r:   )r^   r%  r   rO  r  r  r  r  r  r  r  r  r  r  r   encoded_binarydecoded_binaryr_   r_   r`   r    s*   



zPage.screenshotc                    ra  r\   )r   titler   r_   r_   r`   r  E  rb  z
Page.titledepthmode)air  boxesc                    s$   | j jd| j jtt I d H S )NariaSnapshot)r   r   r\  _timeoutr;   r9  )r^   r%  r  r  r  r_   r_   r`   aria_snapshotH  s   
zPage.aria_snapshotrunBeforeUnloadreasonc              
      s   || _ |s	d| _z-| jr| j I d H  W d S |r'| jdd I d H  W d S | jdd d|iI d H  W d S  tyQ } zt|rK|sKW Y d }~d S |d }~ww )NTr  rp   r  )r   r   r   rp   r   r\  	Exceptionr#   )r^   r  r  er_   r_   r`   rp   U  s     z
Page.closec                 C   r  r\   )r   r   r_   r_   r`   r  e  s   zPage.is_closed	modifierspositiondelaybutton
clickCountforcenoWaitAftertrialc                    r6  r7  )r   _clickr;   r9  )r^   r+  r  r  r  r  r  r%  r  r  r  r,  r_   r_   r`   clickh  s   z
Page.clickc                    r6  r7  )r   dblclickr;   r9  )r^   r+  r  r  r  r  r%  r  r  r,  r  r_   r_   r`   r  x     zPage.dblclickc	           	         r6  r7  )r   tapr;   r9  )	r^   r+  r  r  r%  r  r  r,  r  r_   r_   r`   r       zPage.tapvaluec                    r6  r7  )r   fillr;   r9  )r^   r+  r  r%  r  r,  r  r_   r_   r`   r       	z	Page.fillhasText
hasNotTexthashasNotc                 C   s   | j j|||||dS )N)r  r  r   r  )r   rX   )r^   r+  r  r  r   r  r_   r_   r`   rX     s   zPage.locatortextexactc                 C      | j j||dS N)r  )r   get_by_alt_textr^   r  r  r_   r_   r`   r       zPage.get_by_alt_textc                 C   r  r  )r   get_by_labelr  r_   r_   r`   r	    r  zPage.get_by_labelc                 C   r  r  )r   get_by_placeholderr  r_   r_   r`   r
    r  zPage.get_by_placeholderrolecheckedr  expandedincludeHiddenlevelpressedselecteddescriptionc                 C   s"   | j j|||||||||	|
|dS )N)
r  r  r  r  r  r  r  r  r  r  )r   get_by_role)r^   r  r  r  r  r  r  r  r  r  r  r  r_   r_   r`   r    s   zPage.get_by_roletestIdc                 C      | j |S r\   )r   get_by_test_id)r^   r  r_   r_   r`   r       zPage.get_by_test_idc                 C   r  r  )r   get_by_textr  r_   r_   r`   r    r  zPage.get_by_textc                 C   r  r  )r   get_by_titler  r_   r_   r`   r    r  zPage.get_by_titlerT   c                 C   r  r\   )r   frame_locatorr0  r_   r_   r`   r    r  zPage.frame_locatorc                    r6  r7  )r   focusr;   r9  r<  r_   r_   r`   r    r=  z
Page.focusc                    r6  r7  )r   text_contentr;   r9  r<  r_   r_   r`   r    r=  zPage.text_contentc                    r6  r7  )r   
inner_textr;   r9  r<  r_   r_   r`   r    r=  zPage.inner_textc                    r6  r7  )r   
inner_htmlr;   r9  r<  r_   r_   r`   r    r=  zPage.inner_htmlc                    r6  r7  )r   get_attributer;   r9  )r^   r+  r  r,  r%  r_   r_   r`   r    r=  zPage.get_attributec	           	         r6  r7  )r   hoverr;   r9  )	r^   r+  r  r  r%  r  r  r,  r  r_   r_   r`   r     r  z
Page.hoverrT  targetsourcePositiontargetPositionstepsc                    r6  r7  )r   drag_and_dropr;   r9  )r^   rT  r!  r"  r#  r  r  r%  r,  r  r$  r_   r_   r`   r%    r  zPage.drag_and_dropindexlabelr   r   c
                    s$   t t }
| jjdi |
I d H S r7  )r;   r9  r   select_option)r^   r+  r  r&  r'  r   r%  r  r  r,  r   r_   r_   r`   r(    s   
zPage.select_optionc                    s$   t t }| jjdi |I d H S r7  )r;   r9  r   input_value)r^   r+  r,  r%  r   r_   r_   r`   r)  .  s   
zPage.input_valuefilesc                    r6  r7  )r   set_input_filesr;   r9  )r^   r+  r*  r%  r,  r  r_   r_   r`   r+  4     
zPage.set_input_filesc                    r6  r7  )r   r   r;   r9  )r^   r+  r  r  r%  r  r,  r_   r_   r`   r   @  r  z	Page.typekeyc                    r6  r7  )r   pressr;   r9  )r^   r+  r-  r  r%  r  r,  r_   r_   r`   r.  K  r  z
Page.pressc                    r6  r7  )r   checkr;   r9  r^   r+  r  r%  r  r  r,  r  r_   r_   r`   r/  V  r,  z
Page.checkc                    r6  r7  )r   uncheckr;   r9  r0  r_   r_   r`   r1  b  r,  zPage.uncheckc                    s   | j |I d H  d S r\   )r   wait_for_timeoutr(  r_   r_   r`   r2  n  s   zPage.wait_for_timeoutpollingrafc                    r6  r7  )r   wait_for_functionr;   r9  )r^   rH  rI  r%  r3  r_   r_   r`   r5  q  r:  zPage.wait_for_functionc                 C   r"  r\   )r   r   r   r_   r_   r`   workersz  r$  zPage.workersrS   c                 C   r  r\   )r   r}   r   r_   r_   r`   r}   ~  r  zPage.requestc              	      s   | j j }| j j }| j d | j d z&tjt| j j	
dd | jgtjdI d H  W | j | | j | d S | j | | j | w )Nr   pause)return_when)r   r   default_navigation_timeoutdefault_timeoutr'  r*  r   r  r   r   r\  r   FIRST_COMPLETED$_set_default_navigation_timeout_impl_set_default_timeout_impl)r^   r9  r:  r_   r_   r`   r7    s.   

z
Page.pausedisplayHeaderFooterheaderTemplatefooterTemplateprintBackground	landscape
pageRangesformatwidthheightpreferCSSPageSizemarginoutlinetaggedc                    sZ   t t }d|v r|d= | jdd |I d H }t|}|r+t| t||I d H  |S )NrO  pdf)r;   r9  r   r\  r  r  r<   r:   )r^   r  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rO  rI  rJ  r   r  r  r_   r_   r`   rK    s   

zPage.pdfc                 C   s   | j jsd S | j S r\   )r   	_artifactr   r_   r_   r`   r     s   z
Page.videoc                 C   r  r\   )r   r   r_   r_   r`   
screencast  r  zPage.screencastc                 C   r  r\   )r   r   r_   r_   r`   local_storage  r  zPage.local_storagec                 C   r  r\   )r   r   r_   r_   r`   session_storage  r  zPage.session_storagec                 C   s   t | jp| j S r\   )r"   r   r   _effective_close_reasonr   r_   r_   r`   r     s   zPage._close_error_with_reasonc                 C   s   |  |||d| dS )Nzwaiting for event "")_expect_event)r^   rs  rt  r%  r_   r_   r`   rv    s   zPage.expect_eventlog_linec                    s   |d u r	 j  }t d| d}||d| d| d |r&|| |tjjkr7| tjjt	d |tjj
krJ| tjj
 fdd | || t| S )	Nzpage.expect_event()Timeout %ms exceeded while waiting for event "rQ  zPage crashedc                      r   r\   )r   r_   r   r_   r`   r     r   z$Page._expect_event.<locals>.<lambda>)r   r%  rP   reject_on_timeoutlogrn   r   rq   reject_on_eventr!   ro   rx  r$   result)r^   rs  rt  r%  rS  waiterr_   r   r`   rR    s    

zPage._expect_eventc                 C      |  tjj||S r\   )rv  rn   r   rs   r^   rt  r%  r_   r_   r`   expect_console_message     zPage.expect_console_messagec                 C   r\  r\   )rv  rn   r   r   r]  r_   r_   r`   expect_download  r_  zPage.expect_downloadc                 C   r\  r\   )rv  rn   r   r%   r]  r_   r_   r`   expect_file_chooser  r_  zPage.expect_file_chooserc                 C   s   | j |||S r\   )r   expect_navigationrr  r_   r_   r`   rb    s   zPage.expect_navigationc                 C   r\  r\   )rv  rn   r   r   r]  r_   r_   r`   expect_popup  r_  zPage.expect_popupurlOrPredicatec                    T   dt dtttt f f fdd}t}|rd| nd } jtjj |||dS )Nr}   r[   c                    "   t st jj| jS | S r\   callabler?   r   r!  r   r}   r^   rd  r_   r`   my_predicate     z)Page.expect_request.<locals>.my_predicatezwaiting for request rt  r%  rS  )rH   r   boolr   trim_urlrR  rn   r   r^   rd  r%  rk  trimmed_urlrS  r_   rj  r`   expect_request     $	zPage.expect_requestc                 C   s   | j tjj||dS )N)rt  r%  )rv  rn   r   r   r]  r_   r_   r`   expect_request_finished+  s   
zPage.expect_request_finishedc                    re  )Nr}   r[   c                    rf  r\   rg  ri  rj  r_   r`   rk  9  rl  z*Page.expect_response.<locals>.my_predicatezwaiting for response rm  )rI   r   rn  r   ro  rR  rn   r   rp  r_   rj  r`   expect_response4  rs  zPage.expect_responsec                 C      |  d||S )Nr   ru  r]  r_   r_   r`   expect_websocketK     zPage.expect_websocketc                 C   rv  r   ru  r]  r_   r_   r`   expect_workerR  rx  zPage.expect_workerc	           	         sF   |r| j ||||||dI d H  d S | j||||||dI d H  d S )N)r+  r  r%  r  r,  r  )r/  r1  )	r^   r+  r  r  r%  r  r  r,  r  r_   r_   r`   set_checkedY  s$   	zPage.set_checkedrX   c                    sX   |j | jkrtd|dkrd S | jdd |j|dI d H }t|||d| j|< d S )Nz2Locator must belong to the main frame of this pager   registerLocatorHandler)r+  r  )rY   rZ   rX   )r  r   r!   r   r\  r  rW   r   )r^   rX   rY   r  rZ   r   r_   r_   r`   add_locator_handlerw  s   
zPage.add_locator_handlerr   c                    s&  dzlj   rJ jdkrJ jd ur  jd8  _jr;j d fdd}t|}|  I d H  n
  }|rE|I d H   jdkW rQj = zjj	fddd	d
I d H  W d S  t
yo   Y d S w rvj = zjj	fddd	d
I d H  W w  t
y   Y w w )NFr      r[   c               
      sH   z    d  W d S  ty# }  z|  W Y d } ~ d S d } ~ ww r\   )r   r  set_exception)r  )rY   handler_finished_futurer_   r`   r]     s   z4Page._on_locator_handler_triggered.<locals>._handlerc                      s   j dd  dS )NresolveLocatorHandlerNoReply)r   r   r  r_   )r   r^   r   r_   r`   r     s
    z4Page._on_locator_handler_triggered.<locals>.<lambda>T)is_internalr   )r   r   rZ   r  r   create_futurer'   switchr  r  r!   )r^   r   r]   gcoro_or_futurer_   )rY   r  r   r^   r   r`   r     sL   



z"Page._on_locator_handler_triggeredc                    sF   | j   D ]\}}|j|r | j |= | jdd d|i qd S )NunregisterLocatorHandlerr   )r   r   itemsrX   _equalsr   send_no_reply)r^   rX   r   datar_   r_   r`   remove_locator_handler  s   zPage.remove_locator_handlerc                    s$   | j dd I d H }dd |D S )Nrequestsc                 S   s   g | ]}t |qS r_   )r   )r	  rr_   r_   r`   
<listcomp>  s    z!Page.requests.<locals>.<listcomp>r  )r^   request_objectsr_   r_   r`   r    s   zPage.requestsfilter)allzsince-navigationc                    s0    j dd tt I d H } fdd|D S )NconsoleMessagesc                    s*   g | ]}t i |d  ji j jqS )r  )r   r   r   r  )r	  rs  r   r_   r`   r    s    z)Page.console_messages.<locals>.<listcomp>r   r\  r;   r9  )r^   r  message_dictsr_   r   r`   console_messages  s   

zPage.console_messagesc                    s,   | j dd tt I d H }dd |D S )N
pageErrorsc                 S   s   g | ]}t |d  qS error)r=   )r	  r  r_   r_   r`   r    s    z$Page.page_errors.<locals>.<listcomp>r  )r^   r  error_objectsr_   r_   r`   page_errors  s
   
zPage.page_errorsc                    r}  )NclearConsoleMessagesr  r   r_   r_   r`   clear_console_messages  r  zPage.clear_console_messagesc                    r}  )NclearPageErrorsr  r   r_   r_   r`   clear_page_errors  r  zPage.clear_page_errorsc                    s"   | j dd i I d H }| |S )NpickLocator)r   r\  rX   r0  r_   r_   r`   pick_locator  s   
zPage.pick_locatorc                    s   | j dd i I d H  d S )NcancelPickLocatorr  r   r_   r_   r`   cancel_pick_locator  rZ  zPage.cancel_pick_locatorr_   )r  r  r[   N)r   r   r[   Nr   )r[   rR   NNr\   )NNN)NNNN)NNNNN)NNNNNNNNNNNNN)
NNNNNNNNNN)	NNNNNNNNN)NNNNNNN)NNNNNNNN)NNNNNN)r[   rS   )NNNNNNNNNNNNNNN)rX   rU   r[   N)r[   rU   )ri   rj   rk   r   r   r@   rl   rA   rB   r   r  r   ra   r   r&   r   r   rJ   r   rK   r   r   r   r   r   r   r   r   propertyr   r   r  r   r   r   r5   r   r	   r#  floatr'  r*  rn  r   r.  r/  r
   r8  r;  r>  r?  r@  rC  rE  rG  rD   rJ  rC   rL  rM  rN  r   r   rQ  rR  r   r   rY  rW  r`  r   rP  r+   re  rI   rh  rj  rp  rq  rx  rz  r|  r  r)   r0   r,   r*   r  r   r  r  r  r  r  r3   rm   r   r   r  r2   r  r8   r  r  r  r   r1   r-   r  r   r  r   r   bytesr  r  r  rp   r  r.   r   r/   r  r  r  r  rX   r  r	  r
  r   r  r  r  r  r  r  r  r  r  r  r   r%  r(  r)  r   r+  r   r.  r/  r1  r2  r5  r6  r}   r7  r   rK  rO   r   rN   rM  rQ   rN  rO  r"   r   r$   rv  rR  r   r^  r   r`  r%   ra  rb  rc  r6   rH   rr  rt  r7   ru  rw  ry  rz  r|  r   r  r  r  r!   r  r  r  r  r  __classcell__r_   r_   r   r`   rn      s>	  
 
	
w!	












	













	
	








	
	


	

*
	
	
	
	
$	
	
	
					



			

		
"(
rn   c                
       s   e Zd ZedddZdededededd	f
 fd
dZdefddZ	dddZ
edefddZddededefddZ		ddededefddZ				ddedededefddZ  ZS ) r   rp   rt   )ro   rs   r   r   r   r   r[   Nc                    sJ   t  ||||  tjjdi  jd fdd d  _d  _	d S )Nrt   rp   c                    r   r\   r   r   r   r_   r`   r     r   z!Worker.__init__.<locals>.<lambda>)
r   ra   r   r   r   rs   r   r   r   r   r   r   r   r`   ra     s
   
zWorker.__init__c                 C   r   )Nz<Worker url=r   r   r   r_   r_   r`   r     r   zWorker.__repr__c                 C   s<   | j r
| j j|  | jr| jj|  | tjj|  d S r\   )	r   r   r   r   _service_workersr   r   r   ro   r   r_   r_   r`   r     s
   zWorker._on_closec                 C   s
   | j d S )Nr   )r  r   r_   r_   r`   r     r$  z
Worker.urlrH  rI  c              	      (   t | jdd t|t|dI d H S )NevaluateExpressionrH  rI  )rF   r   r\  r]  rG   rK  r_   r_   r`   rJ    s   zWorker.evaluatec              	      r  )NevaluateExpressionHandler  )r   r   r\  r]  rG   rK  r_   r_   r`   rL    s   zWorker.evaluate_handlers  rt  r%  c                 C   s   |d u r| j r| j j }n| jr| jj }nd}t| d| d}|tt|d| d| d |tj	j
krD|| tj	j
dd  || || t| S )	Ni0u  zworker.expect_event(rT  rU  rV  rQ  c                   S   s   t  S r\   )r"   r_   r_   r_   r`   r   /  s    z%Worker.expect_event.<locals>.<lambda>)r   r   r%  r   rP   rW  r   r  r   r   ro   rY  rx  r$   rZ  )r^   rs  rt  r%  r[  r_   r_   r`   rv    s"   zWorker.expect_eventr   r\   r  )ri   rj   rk   r   r   r   r  r   ra   r   r   r  r   rD   r   rJ  rC   rL  r   r  r$   rv  r  r_   r_   r   r`   r     sJ    	

r   c                
       sD   e Zd Zdededededdf
 fddZd	eddfd
dZ  Z	S )r  r   r   r   r   r[   Nc                    s   t  |||| d S r\   )r   ra   r   r   r_   r`   ra   6  s   zBindingCall.__init__r  c                    s   zQt | jd }t|jj|j|d}| jdr$||t | jd }nttt| jd }||g|R  }t	
|r@|I d H }| jdd tt|dI d H  W d S  ty } z!t d }t| jdd ttt||d	d	 W Y d }~d S d }~ww )
Nr   )r   r  r   r  rU  resolve)rZ     rejectr  )r   r  r]  r   r   r   r  r  rF   rd   iscoroutiner   r\  rG   r  sysexc_infor   r   r>   )r^   r  r   rT  rZ  	func_argsr  tbr_   r_   r`   r  ;  s,   

zBindingCall.call)
ri   rj   rk   r   r  r   ra   r   r  r  r_   r_   r   r`   r  5  s    r  paramr[   c                 C   s,   t | tjrt| jS t | trt| S d S r\   )r  rer   trim_endpatternr  )r  r_   r_   r`   ro  R  s
   

ro  sc                 C   s    t | dkr| d d d S | S )N2   u   …)rc   )r  r_   r_   r`   r  Z  s   r  )}r   r  rd   r  r  pathlibr   typesr   typingr   r   r   r   r   r	   r
   r   r   r   r   r    playwright._impl._api_structuresr   r   r   r   r   r   playwright._impl._artifactr   playwright._impl._clockr   playwright._impl._connectionr   r   r   !playwright._impl._console_messager   playwright._impl._disposabler   r   playwright._impl._downloadr    playwright._impl._element_handler   r    playwright._impl._errorsr!   r"   r#   'playwright._impl._event_context_managerr$   playwright._impl._file_chooserr%   playwright._impl._framer&   playwright._impl._greenletsr'   playwright._impl._har_routerr(   playwright._impl._helperr)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   playwright._impl._inputr@   rA   rB   playwright._impl._js_handlerC   rD   rE   rF   rG   playwright._impl._networkrH   rI   rJ   rK   rL   rM   playwright._impl._screencastrN   playwright._impl._videorO   playwright._impl._waiterrP   playwright._impl._web_storagerQ   !playwright._impl._browser_contextrR   playwright._impl._fetchrS   playwright._impl._locatorrT   rU   rV   rW   rn   r   r  r  ro  r  r_   r_   r_   r`   <module>   sf   8 d           kN