o
    Ah                     @   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 d dl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) d dl*m+Z+m,Z, d dl-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ d dlRmSZSmTZTmUZU d dlVmWZWmXZXmYZYmZZZm[Z[ d dl\m]Z]m^Z^m_Z_m`Z`maZambZb d dlcmdZd d dlemfZf e
r#d dlgmhZh d dlimjZj d dlkmlZlmmZm d dl\mnZn G dd dZoG dd  d e#ZpG d!d" d"e#ZqG d#d$ d$e#Zrd%eeIeJf d&ees fd'd(Ztd)esd&esfd*d+ZudS ),    N)Path)SimpleNamespace)TYPE_CHECKINGAnyCallableDictListLiteralOptionalPatternSequenceUnioncast)Accessibility)AriaRoleFilePayload	FloatRect
PdfMarginsPositionViewportSize)Artifact)Clock)ChannelOwnerfrom_channelfrom_nullable_channel)ConsoleMessage)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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)Video)Waiter)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 )LocatorHandlerrP   locator.handlerNtimesreturnc                 C   s   || _ || _|| _d S N)rS   _handlerrU   )selfrS   rT   rU    rZ   W/var/www/html/openai_agents/venv/lib/python3.10/site-packages/playwright/_impl/_page.py__init__t   s   
zLocatorHandler.__init__c                 C   s.   t t| jj}|dkr|  S | | jS Nr   )leninspect	signaturerX   
parametersrS   )rY   	arg_countrZ   rZ   r[   __call__{   s   zLocatorHandler.__call__)
__name__
__module____qualname____annotations__r   r   r   intr\   rc   rZ   rZ   rZ   r[   rR   o   s   
 "


rR   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)< e	ed*< d+e
d,ed-ed.ed/d0f
 fd1d2Zd/efd3d4Zd5ed/d0fd6d7Zd5ed/d0fd8d9Zd:ed/d0fd;d<Zd=ed/d0fd>d?ZddBdCZddDdEZddFdGZddHdIZdJed/d0fdKdLZdJed/d0fdMdNZdJed/d0fdOdPZeddRdSZed/e fdTdUZ!d/e"d  fdVdWZ#ed/efdXdYZ$ddZed[e%d/e"e fd\d]Z&ed/e'e fd^d_Z(d`e)d/d0fdadbZ*d`e)d/d0fdcddZ+	0ddeedfe,d/e"e- fdgdhZ.deed/e'e- fdidjZ/	0	0	0ddeed`e)dke0dl dfe,d/e"e- f
dmdnZ1	0ddeedfe,d`e)d/e,fdodpZ2	0ddeedfe,d`e)d/e,fdqdrZ3	0ddeedfe,d`e)d/e,fdsdtZ4	0ddeedfe,d`e)d/e,fdudvZ5	0ddeedfe,d`e)d/e,fdwdxZ6	0ddeedfe,d`e)d/e,fdydzZ7	0	0	0ddeed,ed{ed`e)dfe,d/d0fd|d}Z8dd~ede9d/efddZ:	0dd~ede9d/e;fddZ<	0	0ddeed~ede9dfe,d/ef
ddZ=	0ddeed~ede9d/efddZ>	0	0	0	0dd[ede?ee@f ded,ed/e-f
ddZA	0dd[ede?ee@f ded/e-fddZBdZedeCd/d0fddZD	0ddZedeCde,d/d0fddZEdeeef d/d0fddZFed/efddZGd/efddZH	0	0dded`e)deId/d0fddZJ	0	0	0dd[ed`e)deIded/e"eK f
ddZL	0	0dd`e)deId/e"eK fddZM	0	0ddke0d d`e)d/d0fddZN	0	0dd[e%deId`e)d/d0fddZO	0ddedeCd`e)d/efddZP	0	0dd`e)deId/e"eK fddZQ	0	0dd`e)deId/e"eK fddZRdddZS	0	0	0	0	0dde0d deTdeUdeVdeWd/d0fddZXdeYd/d0fddZZed/e"eY fddZ[dddZ\	0ddede?ee@f d/d0fddĄZ]	0dd[e%de^de_d/d0fddȄZ`	0dd[e%de"e^ d/d0fddʄZa	0dde'eb de'eb de0d d/d0fddЄZcd[e%dedd/d0fdd҄ZedddԄZf	0dde0d d/d0fddքZg	0	0	0	0	0dde?e@ef d[e?ehe ef deide,de0d dejd/d0fddބZkdddZldddZm	0	0	0	0	0	0	0	0	0	0	0	0	0dd`e)d,e0d de?ee@f de_de,de,dende0d de0d de0d deod deded/epfddZqd/efddZrdde,ded/d0fddZsd/e,fddZt	0	0	0	0	0	0	0	0	0	0ddeedeoeu devde)dewd e_d`e)de,de,de,dfe,d/d0fddZx	0	0	0	0	0	0	0	0	0ddeedeoeu devde)dewd`e)de,de,dfe,de,d/d0fddZy	0	0	0	0	0	0	0ddeedeoeu devd`e)de,de,dfe,de,d/d0fdd	Zz	0	0	0	0ddeed
ed`e)de,dfe,de,d/d0fddZ{	0	0	0	0ddeede?eehe f de?eehe f ddddd/dfddZ|	0dde?eehe f de,d/dfddZ}	0dde?eehe f de,d/dfddZ~	0dde?eehe f de,d/dfddZ	0	0	0	0	0	0	0	0	0ddede,de,de,de,d e_dZe?eehe f d!e,d"e,de,d/dfd#d$Zd%e?eehe f d/dfd&d'Z	0dde?eehe f de,d/dfd(d)Z	0dde?eehe f de,d/dfd*d+Zdeed/d,fd-d.Z	0ddeedfe,d`e)d/d0fd/d0Z	0ddeedfe,d`e)d/e"e fd1d2Z	0ddeedfe,d`e)d/efd3d4Z	0ddeedfe,d`e)d/efd5d6Z	0ddeedZedfe,d`e)d/e"e f
d7d8Z	0	0	0	0	0	0	0ddeedeoeu devd`e)de,de,dfe,de,d/d0fd9d:Z	0	0	0	0	0	0	0dd;ed<ed=evd>evde,de,d`e)dfe,de,d/d0fd?d@Z	0	0	0	0	0	0	0	0ddeed
e?eeoe f dAe?e_eoe_ f dBe?eeoe f dCe?dDeodD f d`e)de,de,dfe,d/e'e fdEdFZ	0ddeedfe,d`e)d/efdGdHZ	0	0	0ddeedIe?ee@eeoe?ee@f  eoe f d`e)dfe,de,d/d0fdJdKZ	0	0	0	0ddeedede)d`e)de,dfe,d/d0fdLdMZ	0	0	0	0ddeedNede)d`e)de,dfe,d/d0fdOdPZ	0	0	0	0	0	0ddeedevd`e)de,de,dfe,de,d/d0fdQdRZ	0	0	0	0	0	0ddeedevd`e)de,de,dfe,de,d/d0fdSdTZd`e)d/d0fdUdVZ	0	0	0dd~ede9d`e)dWe?e)e0dX f d/e;f
dYdZZed/e'd% fd[d\Zedd^d_Zdd`daZ	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0dde)dbe,dceddedee,dfe,dgedhedie?ee)f dje?ee)f dke,dlede?ee@f dme,dne,d/epf dodpZd/efdqdrZed/e"e fdsdtZd/efdudvZ	0	0ddedeCd`e)d/efdwdxZ	0	0	0ddedeCd`e)dyed/ef
dzd{Z	0	0ddeCege,f d`e)d/ee fd|d}Z	0	0ddeCege,f d`e)d/ee fd~dZ	0	0ddeCege,f d`e)d/ee fddZ	0	0	0dd[e%deId`e)d/eeK fddZ	0	0ddeCd ge,f d`e)d/ed  fddZ	0dded`e)d/ee fddZ	0	0ddeCdge,f d`e)d/ee fddZ	0dded`e)d/eeK fddZ	0	0ddeCd#ge,f d`e)d/ed# fddZ	0	0ddeCd%ge,f d`e)d/ed% fddZ	0	0	0	0	0	0ddeede,devd`e)de,de,dfe,de,d/d0fddZ	0	0dddde?eCdgef eCg ef f de,de_d/d0f
ddZded/d0fddZdddZ  ZS (  PageClosecloseCrashcrashConsoleconsoleDialogdialogr   downloadr#   filechooserDOMContentLoadeddomcontentloaded	PageError	pageerrorrE   requestrF   responseRequestFailedrequestfailedRequestFinishedrequestfinishedFrameAttachedframeattachedFrameDetachedframedetachedFrameNavigatedframenavigatedLoadloadPopuppopuprQ   	websocketWorkerworkeraccessibilitykeyboardmousetouchscreenparenttypeguidinitializerrV   Nc                    s  t  |||| td| _t j _t j _t	 j _
t j _t|d  _  j_ jg _|d _d _g  _i  _g  _g  _d  _t jj _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 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(j* fd$d	  +t'j(j,d%t'j(j-d&t'j(j.d't'j(j/d(t'j(j0d)t'j(j1d*t'j(j2di d S )+NrM   	mainFrameviewportSizeFri   openerbindingCallc                         t| d S )Nbinding)_on_bindingr   paramsrY   rZ   r[   <lambda>       zPage.__init__.<locals>.<lambda>rk   c                          S rW   	_on_close_r   rZ   r[   r          rm   c                    r   rW   )	_on_crashr   r   rZ   r[   r      r   rr   c                    
     | S rW   )_on_downloadr   r   rZ   r[   r         
 fileChooserc                    s$     tjjt t| d | d S )Nelement
isMultiple)emitri   Eventsr#   r   r   r   rZ   r[   r      s    frameAttachedc                    r   Nframe)_on_frame_attachedr   r   r   rZ   r[   r      r   frameDetachedc                    r   r   )_on_frame_detachedr   r   r   rZ   r[   r      r   locatorHandlerTriggeredc                    s    j  | d S )Nuid)_loopcreate_task_on_locator_handler_triggeredr   r   rZ   r[   r      s    routec                        j  t| d S )Nr   )r   r   	_on_router   r   r   rZ   r[   r          webSocketRoutec                    r   )Nr   )r   r   _on_web_socket_router   r   r   rZ   r[   r      r   videoc                    r   rW   )	_on_videor   r   rZ   r[   r      r   viewportSizeChanged	webSocketc                    s     tjjt| d S )Nr   )r   ri   r   rQ   r   r   r   rZ   r[   r      s    r   c                    r   Nr   )
_on_workerr   r   r   rZ   r[   r      r   c                    s    j  s j   S d S rW   )_closed_or_crashed_futuredone
set_result_close_error_with_reasonr   r   rZ   r[   r      s
   c                    s    j  s j t S d S rW   )r   r   r   r    r   r   rZ   r[   r      s   ro   rq   rx   ry   requestFinishedrequestFailed)3superr\   r   _browser_contextr   _channelr   r=   r   r>   r   r?   r   r   _main_frame_page_framesget_viewport_size
_is_closed_workers	_bindings_routes_web_socket_routes_owned_contextr2   _timeout_settings_videor   _opener_close_reason_close_was_called_har_routers_locator_handlerson_on_viewport_size_changedasyncioFuturer   ri   r   rj   rl   "_set_event_to_subscription_mappingrn   rp   rE   rF   r|   rz   r#   rY   r   r   r   r   	__class__r   r[   r\      s   


	









	zPage.__init__c                 C      d| j dS )Nz
<Page url=>urlr   rZ   rZ   r[   __repr__     zPage.__repr__r   c                 C   s&   | |_ | j| | tjj| d S rW   )r   r   appendr   ri   r   r~   rY   r   rZ   rZ   r[   r     s   zPage._on_frame_attachedc                 C   s&   | j | d|_| tjj| d S NT)r   remove	_detachedr   ri   r   r   r   rZ   rZ   r[   r        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   rV   c                      s,   z
   I d H  W d S  ty   Y d S w rW   )_update_interception_patternsr   rZ   r   rZ   r[   ._update_interceptor_patterns_ignore_exceptions/  s   zFPage._on_route.<locals>._update_interceptor_patterns_ignore_exceptionsTrV   N)context_contextr   copyr   _closing_or_closedmatchesrx   r   will_expirer   handler^   r   r   _connectionwrap_api_callr   r   )rY   r   route_handlersroute_handlerhandledr   rZ   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 rW   )r   r   ).0r  r  rZ   r[   	<genexpr>@  s    

z,Page._on_web_socket_route.<locals>.<genexpr>)nextr   r   r   r   )rY   r  r  rZ   r  r[   r   >  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   )rY   r  funcrZ   rZ   r[   r   L  s   zPage._on_bindingc                 C   s&   | j | | |_| tjj| d S rW   )r   r   r   r   ri   r   r   )rY   r   rZ   rZ   r[   r   R  r   zPage._on_workerc                 C   sV   d| _ | | jjv r| jj|  | | jjv r| jj|  |   | tjj	|  d S r   )
r   r   _pagesr   _background_pages_dispose_har_routersr   ri   r   rj   r   rZ   rZ   r[   r   W  s   zPage._on_closec                 C   s   |  tjj|  d S rW   )r   ri   r   rl   r   rZ   rZ   r[   r   `  s   zPage._on_crashr   c                 C   s@   |d }|d }t tt|d }| tjjt| ||| d S )Nr   suggestedFilenameartifact)r   r   r   r   ri   r   r   )rY   r   r   suggested_filenamer  rZ   rZ   r[   r   c  s   zPage._on_downloadc                 C   s   t |d }|  | d S )Nr  )r   _force_video_artifact_ready)rY   r   r  rZ   rZ   r[   r   k  s   zPage._on_videoc                 C   s   |d | _ d S )Nr   r   )rY   r   rZ   rZ   r[   r   o  r   zPage._on_viewport_size_changedrM   c                 C      | j S rW   )r   r   rZ   rZ   r[   r   r     zPage.contextc                 C      | j jS rW   )r   clockr   rZ   rZ   r[   r  v     z
Page.clockc                    s   | j r| j  rd S | j S rW   )r   	is_closedr   rZ   rZ   r[   r   z  s   zPage.openerc                 C   r  rW   )r   r   rZ   rZ   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 rW   )r   r
  r<   r   	_base_urlr   )rY   r
  r   r   rZ   rZ   r[   r     s   
z
Page.framec                 C   
   | j  S rW   )r   r   r   rZ   rZ   r[   frames     
zPage.framestimeoutc                 C      | j | d S rW   )r   set_default_navigation_timeoutrY   r"  rZ   rZ   r[   r$       z#Page.set_default_navigation_timeoutc                 C   r#  rW   )r   set_default_timeoutr%  rZ   rZ   r[   r'    r&  zPage.set_default_timeoutselectorstrictc                       | j ||I d H S rW   )r   query_selector)rY   r(  r)  rZ   rZ   r[   r+    s   zPage.query_selectorc                    s   | j |I d H S rW   )r   query_selector_allrY   r(  rZ   rZ   r[   r,    s   zPage.query_selector_allstate)attacheddetachedhiddenvisiblec                        | j jdi tt I d H S NrZ   )r   wait_for_selectorr9   locals)rY   r(  r"  r.  r)  rZ   rZ   r[   r5       zPage.wait_for_selectorc                    r3  r4  )r   
is_checkedr9   r6  rY   r(  r)  r"  rZ   rZ   r[   r8       zPage.is_checkedc                    r3  r4  )r   is_disabledr9   r6  r9  rZ   rZ   r[   r;    r:  zPage.is_disabledc                    r3  r4  )r   is_editabler9   r6  r9  rZ   rZ   r[   r<    r:  zPage.is_editablec                    r3  r4  )r   
is_enabledr9   r6  r9  rZ   rZ   r[   r=    r:  zPage.is_enabledc                       | j j||dI d H S N)r(  r)  )r   	is_hiddenr9  rZ   rZ   r[   r@       zPage.is_hiddenc                    r>  r?  )r   
is_visibler9  rZ   rZ   r[   rB    rA  zPage.is_visible	eventInitc                    r3  r4  )r   dispatch_eventr9   r6  )rY   r(  r   rC  r"  r)  rZ   rZ   r[   rD    s   zPage.dispatch_event
expressionargc                    r*  rW   )r   evaluaterY   rE  rF  rZ   rZ   r[   rG    s   zPage.evaluatec                    r*  rW   )r   evaluate_handlerH  rZ   rZ   r[   rI    s   zPage.evaluate_handlec                    s   | j ||||I d H S rW   )r   eval_on_selector)rY   r(  rE  rF  r)  rZ   rZ   r[   rJ    s   
zPage.eval_on_selectorc                    s   | j |||I d H S rW   )r   eval_on_selector_all)rY   r(  rE  rF  rZ   rZ   r[   rK    s   zPage.eval_on_selector_allpathcontentc                    r3  r4  )r   add_script_tagr9   r6  )rY   r   rL  rM  r   rZ   rZ   r[   rN    r7  zPage.add_script_tagc                    r3  r4  )r   add_style_tagr9   r6  )rY   r   rL  rM  rZ   rZ   r[   rO    r:  zPage.add_style_tagcallbackc                    s    |  | fddI d H  d S )Nc                    s    | S rW   rZ   )sourceargsrP  rZ   r[   r     r   z&Page.expose_function.<locals>.<lambda>)expose_binding)rY   r
  rP  rZ   rS  r[   expose_function  s   zPage.expose_functionr   c                    sh   || j v rtd| d|| jj v rtd| d|| j |< | jdd t||p+ddI d H  d S )Nz
Function "z" has been already registeredz4" has been already registered in the browser contextexposeBindingF)r
  needsHandle)r   r   r   r   senddict)rY   r
  rP  r   rZ   rZ   r[   rT    s   


zPage.expose_bindingheadersc                    s&   | j dd tt|dI d H  d S )NsetExtraHTTPHeaders)rZ  )r   rX  rY  rJ   )rY   rZ  rZ   rZ   r[   set_extra_http_headers  s   zPage.set_extra_http_headersc                 C   r  rW   )r   r   r   rZ   rZ   r[   r     r  zPage.urlc                       | j  I d H S rW   )r   rM  r   rZ   rZ   r[   rM       zPage.contenthtml	waitUntilc                    r3  r4  )r   set_contentr9   r6  )rY   r_  r"  r`  rZ   rZ   r[   ra       zPage.set_contentrefererc                    r3  r4  )r   gotor9   r6  )rY   r   r"  r`  rc  rZ   rZ   r[   rd  %  r7  z	Page.gotoc                    &   t | jd| jjtt I d H S )Nreloadr   r   rX  r   navigation_timeoutr9   r6  rY   r"  r`  rZ   rZ   r[   rf  .     zPage.reload)ru   r   networkidlec                    r3  r4  )r   wait_for_load_stater9   r6  )rY   r.  r"  rZ   rZ   r[   rl  ;  s   zPage.wait_for_load_statec                    r3  r4  )r   wait_for_urlr9   r6  rY   r   r`  r"  rZ   rZ   r[   rm  B  rb  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 rW   expect_event)rY   ro  rp  r"  
event_inforZ   rZ   r[   wait_for_eventJ  s
   (
zPage.wait_for_eventc                    re  )NgoBackrg  ri  rZ   rZ   r[   go_backQ  rj  zPage.go_backc                    re  )N	goForwardrg  ri  rZ   rZ   r[   
go_forward^  rj  zPage.go_forwardc                       | j dd I d H  d S )N	requestGCr   rX  r   rZ   rZ   r[   
request_gck     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)r9   r6  r   rX  )rY   r~  r  r  r  r  r   rZ   rZ   r[   emulate_median  s"   
zPage.emulate_mediar   c                    s(   || _ | jdd tt I d H  d S )NsetViewportSize)r   r   rX  r9   r6  )rY   r   rZ   rZ   r[   set_viewport_size  s   zPage.set_viewport_sizec                 C   r  rW   r  r   rZ   rZ   r[   viewport_size  r  zPage.viewport_sizec                    ry  )NbringToFrontr{  r   rZ   rZ   r[   bring_to_front  r}  zPage.bring_to_frontscriptc                    sP   |rt t|I d H  |}t|tstd| jdd t|dI d H  d S )Nz1Either path or script parameter must be specifiedaddInitScript)rQ  )	rB   r7   decode
isinstancestrr   r   rX  rY  )rY   r  rL  rZ   rZ   r[   add_init_script  s   
 zPage.add_init_scriptrT   rU   c              	      s<   | j dt| jj||| jrdnd| |  I d H  d S )Nr   TF)r   insertr0   r   r  _dispatcher_fiberr   )rY   r   rT   rU   rZ   rZ   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   rT   r   _unroute_internal)rY   r   rT   removed	remainingr   rZ   rZ   r[   unroute  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 rW   )stop)r   r  rZ   r[   r     r   z(Page._unroute_internal.<locals>.<lambda>)r   r   gathermapr   )rY   r  r  r  rZ   r  r[   r    s   

zPage._unroute_internalc                    s.   | j dt| jj|| |  I d H  d S r]   )r   r  rI   r   r  (_update_web_socket_interception_patterns)rY   r   rT   rZ   rZ   r[   route_web_socket  s   zPage.route_web_socketc                 C   s   | j D ]}|  qg | _ d S rW   )r   dispose)rY   routerrZ   rZ   r[   r    s   


zPage._dispose_har_routersc                    s$   |  | jg |I d H  |   d S rW   )r  r   r  )rY   r  rZ   rZ   r[   unroute_all  s   zPage.unroute_allharnotFoundupdateupdateContent)attachembed
updateModec                    sj   |r| 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   _record_into_harr&   creater   r  r  r   r   add_page_route)rY   r  r   r  r  r  r  r  rZ   rZ   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)r0   prepare_interception_patternsr   r   rX  rY   r  rZ   rZ   r[   r     s   z"Page._update_interception_patternsc                    r  )N setWebSocketInterceptionPatternsr  )rI   r  r   r   rX  r  rZ   rZ   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maskrP   	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 )NrL  r   r  c                 S   s   | j j| jdS )N)r   r(  )_framer   	_selector)rS   rZ   rZ   r[   r   )  s   z!Page.screenshot.<locals>.<lambda>
screenshot)r9   r6  r   listr  r   rX  r   r"  base64	b64decoder:   r8   )rY   r"  r   rL  r  r  r  r  r  r  r  r  r  r  r   encoded_binarydecoded_binaryrZ   rZ   r[   r    s*   



zPage.screenshotc                    r]  rW   )r   titler   rZ   rZ   r[   r  ;  r^  z
Page.titlerunBeforeUnloadreasonc              
      s   || _ d| _z| jdd tt I d H  | jr$| j I d H  W d S W d S  tyH } zt	|s6|s=|W Y d }~d S W Y d }~d S d }~ww )NTrk   )
r   r   r   rX  r9   r6  r   rk   	Exceptionr!   )rY   r  r  erZ   rZ   r[   rk   >  s   z
Page.closec                 C   r  rW   )r   r   rZ   rZ   r[   r  I  s   zPage.is_closed	modifierspositiondelaybutton
clickCountforcenoWaitAftertrialc                    r3  r4  )r   clickr9   r6  )rY   r(  r  r  r  r  r  r"  r  r  r  r)  rZ   rZ   r[   r  L  s   z
Page.clickc                    r3  r4  )r   dblclickr9   r6  )rY   r(  r  r  r  r  r"  r  r  r)  r  rZ   rZ   r[   r  \  s   zPage.dblclickc	           	         r3  r4  )r   tapr9   r6  )	rY   r(  r  r  r"  r  r  r)  r  rZ   rZ   r[   r  k     zPage.tapvaluec                    r3  r4  )r   fillr9   r6  )rY   r(  r  r"  r  r)  r  rZ   rZ   r[   r  x     	z	Page.fillhasText
hasNotTexthashasNotc                 C   s   | j j|||||dS )N)r  r  r  r  )r   rS   )rY   r(  r  r  r  r  rZ   rZ   r[   rS     s   zPage.locatortextexactc                 C      | j j||dS N)r  )r   get_by_alt_textrY   r  r  rZ   rZ   r[   r       zPage.get_by_alt_textc                 C   r  r  )r   get_by_labelr  rZ   rZ   r[   r    r  zPage.get_by_labelc                 C   r  r  )r   get_by_placeholderr  rZ   rZ   r[   r    r  zPage.get_by_placeholderrolecheckedr  expandedincludeHiddenlevelpressedselectedc                 C   s    | j j|||||||||	|
d
S )N)	r  r  r  r  r  r
  r  r   r  )r   get_by_role)rY   r  r  r  r  r  r  r
  r  r   r  rZ   rZ   r[   r    s   zPage.get_by_roletestIdc                 C      | j |S rW   )r   get_by_test_id)rY   r  rZ   rZ   r[   r       zPage.get_by_test_idc                 C   r  r  )r   get_by_textr  rZ   rZ   r[   r    r  zPage.get_by_textc                 C   r  r  )r   get_by_titler  rZ   rZ   r[   r    r  zPage.get_by_titlerO   c                 C   r  rW   )r  frame_locatorr-  rZ   rZ   r[   r    r  zPage.frame_locatorc                    r3  r4  )r   focusr9   r6  r9  rZ   rZ   r[   r	    r:  z
Page.focusc                    r3  r4  )r   text_contentr9   r6  r9  rZ   rZ   r[   r
    r:  zPage.text_contentc                    r3  r4  )r   
inner_textr9   r6  r9  rZ   rZ   r[   r    r:  zPage.inner_textc                    r3  r4  )r   
inner_htmlr9   r6  r9  rZ   rZ   r[   r    r:  zPage.inner_htmlc                    r3  r4  )r   get_attributer9   r6  )rY   r(  r
  r)  r"  rZ   rZ   r[   r    r:  zPage.get_attributec	           	         r3  r4  )r   hoverr9   r6  )	rY   r(  r  r  r"  r  r  r)  r  rZ   rZ   r[   r    r  z
Page.hoverrQ  targetsourcePositiontargetPositionc
           
         r3  r4  )r   drag_and_dropr9   r6  )
rY   rQ  r  r  r  r  r  r"  r)  r  rZ   rZ   r[   r    s   zPage.drag_and_dropindexlabelr   r   c
                    s$   t t }
| jjdi |
I d H S r4  )r9   r6  r   select_option)rY   r(  r  r  r  r   r"  r  r  r)  r   rZ   rZ   r[   r     s   
zPage.select_optionc                    s$   t t }| jjdi |I d H S r4  )r9   r6  r   input_value)rY   r(  r)  r"  r   rZ   rZ   r[   r    s   
zPage.input_valuefilesc                    r3  r4  )r   set_input_filesr9   r6  )rY   r(  r  r"  r)  r  rZ   rZ   r[   r       
zPage.set_input_filesc                    r3  r4  )r   r   r9   r6  )rY   r(  r  r  r"  r  r)  rZ   rZ   r[   r   !  r  z	Page.typekeyc                    r3  r4  )r   pressr9   r6  )rY   r(  r  r  r"  r  r)  rZ   rZ   r[   r  ,  r  z
Page.pressc                    r3  r4  )r   checkr9   r6  rY   r(  r  r"  r  r  r)  r  rZ   rZ   r[   r  7  r  z
Page.checkc                    r3  r4  )r   uncheckr9   r6  r  rZ   rZ   r[   r  C  r  zPage.uncheckc                    s   | j |I d H  d S rW   )r   wait_for_timeoutr%  rZ   rZ   r[   r  O  s   zPage.wait_for_timeoutpollingrafc                    r3  r4  )r   wait_for_functionr9   r6  )rY   rE  rF  r"  r   rZ   rZ   r[   r"  R  r7  zPage.wait_for_functionc                 C   r  rW   )r   r   r   rZ   rZ   r[   workers[  r!  zPage.workersrN   c                 C   r  rW   )r   rx   r   rZ   rZ   r[   rx   _  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   rX  r   FIRST_COMPLETED$_set_default_navigation_timeout_impl_set_default_timeout_impl)rY   r&  r'  rZ   rZ   r[   r$  c  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 )NrL  pdf)r9   r6  r   rX  r  r  r:   r8   )rY   r  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  rL  r6  r7  r   r  r  rZ   rZ   r[   r8  z  s   

zPage.pdfc                 C   s   | j st| | _ | j S rW   )r   rK   r   rZ   rZ   r[   r    s   
zPage._force_videoc                 C   s   | j jsd S |  S rW   )r   _videos_dirr  r   rZ   rZ   r[   r     s   z
Page.videoc                 C   s   t | jp| j S rW   )r    r   r   _effective_close_reasonr   rZ   rZ   r[   r     s   zPage._close_error_with_reasonc                 C   s   |  |||d| dS )Nzwaiting for event "")_expect_event)rY   ro  rp  r"  rZ   rZ   r[   rr    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()zTimeout z%ms exceeded while waiting for event "r;  zPage crashedc                      r   rW   )r   rZ   r   rZ   r[   r     r   z$Page._expect_event.<locals>.<lambda>)r   r"  rL   reject_on_timeoutlogri   r   rl   reject_on_eventr   rj   rt  r"   result)rY   ro  rp  r"  r=  waiterrZ   r   r[   r<    s    

zPage._expect_eventc                 C      |  tjj||S rW   )rr  ri   r   rn   rY   rp  r"  rZ   rZ   r[   expect_console_message     zPage.expect_console_messagec                 C   rD  rW   )rr  ri   r   r   rE  rZ   rZ   r[   expect_download  rG  zPage.expect_downloadc                 C   rD  rW   )rr  ri   r   r#   rE  rZ   rZ   r[   expect_file_chooser  rG  zPage.expect_file_chooserc                 C   s   | j |||S rW   )r  expect_navigationrn  rZ   rZ   r[   rJ    s   zPage.expect_navigationc                 C   rD  rW   )rr  ri   r   r   rE  rZ   rZ   r[   expect_popup  rG  zPage.expect_popupurlOrPredicatec                    H   dt dtf fdd}t}|rd| nd } jtjj |||dS )Nrx   rV   c                    "   t st jj| jS | S rW   callabler<   r   r  r   rx   rY   rL  rZ   r[   my_predicate     z)Page.expect_request.<locals>.my_predicatezwaiting for request rp  r"  r=  )rE   booltrim_urlr<  ri   r   rY   rL  r"  rS  trimmed_urlr=  rZ   rR  r[   expect_request     	zPage.expect_requestc                 C   s   | j tjj||dS )N)rp  r"  )rr  ri   r   r|   rE  rZ   rZ   r[   expect_request_finished  s   
zPage.expect_request_finishedc                    rM  )Nrx   rV   c                    rN  rW   rO  rQ  rR  rZ   r[   rS    rT  z*Page.expect_response.<locals>.my_predicatezwaiting for response rU  )rF   rV  rW  r<  ri   r   rX  rZ   rR  r[   expect_response  r[  zPage.expect_responsec                 C      |  d||S )Nr   rq  rE  rZ   rZ   r[   expect_websocket(     zPage.expect_websocketc                 C   r^  r   rq  rE  rZ   rZ   r[   expect_worker/  r`  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  r  )	rY   r(  r  r  r"  r  r  r)  r  rZ   rZ   r[   set_checked6  s$   	zPage.set_checkedrS   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  )rT   rU   rS   )r  r   r   r   rX  r  rR   r   )rY   rS   rT   r  rU   r   rZ   rZ   r[   add_locator_handlerT  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      rV   c               
      sH   z    d  W d S  ty# }  z|  W Y d } ~ d S d } ~ ww rW   )r   r  set_exception)r  )rT   handler_finished_futurerZ   r[   rX   u  s   z4Page._on_locator_handler_triggered.<locals>._handlerc                      s   j dd  dS )NresolveLocatorHandlerNoReply)r   r   r{  rZ   )r   rY   r   rZ   r[   r     s
    z4Page._on_locator_handler_triggered.<locals>.<lambda>T)is_internalr   )r   r   rU   r  r   create_futurer%   switchr   r   r   )rY   r   rX   gcoro_or_futurerZ   )rT   rg  r   rY   r   r[   r   k  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   itemsrS   _equalsr   send_no_reply)rY   rS   r   datarZ   rZ   r[   remove_locator_handler  s   zPage.remove_locator_handlerrZ   )r  r	  rV   N)r   r   rV   Nr   )rV   rM   )NNrW   )NNN)NNNN)NNNNN)NNNNNNNNNNNNN)
NNNNNNNNNN)	NNNNNNNNN)NNNNNNN)NNNNNNNN)NNNNNN)rV   rN   )NNNNNNNNNNNNNNN)rS   rP   rV   N)rd   re   rf   r   r   r   rg   r=   r>   r?   r   r  r   r\   r   r$   r   r   rG   r   rH   r   r   r   r   r   r   r   r   r   propertyr   r   r  r
   r   r  r3   r   r   r   floatr$  r'  rV  r   r+  r,  r	   r5  r8  r;  r<  r=  r@  rB  rD  rA   rG  r@   rI  rJ  rK  r   r   rN  rO  r   rU  rT  r\  r   rM  r)   ra  rF   rd  rf  rl  rm  rt  rv  rx  r|  r'   r.   r*   r(   r  r   r  r  r  r  r1   rh   r   r  r0   r  r6   r  r  r  r   r/   r+   r  r   r  r   r   bytesr  r  rk   r  r,   r   r-   r  r  r  r  rS   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#  rx   r$  r   r8  rK   r  r   r    r   r"   rr  r<  r   rF  r   rH  r#   rI  rJ  rK  r4   rE   rZ  r\  r5   r]  r_  ra  rb  rd  r   rs  __classcell__rZ   rZ   r   r[   ri      s 	  
 
	
s!		












	














	
	








	
	


	

*	
	
	
	
$	
	
	
					




			

		
"(ri   c                
       s   e Zd Ze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  ZS )r   rk   )rj   r   r   r   r   rV   Nc                    s8   t  ||||  jd fdd d  _d  _d S )Nrk   c                    r   rW   r   r   r   rZ   r[   r     r   z!Worker.__init__.<locals>.<lambda>)r   r\   r   r   r   r   r   r   r   r[   r\     s   
zWorker.__init__c                 C   r   )Nz<Worker url=r   r   r   rZ   rZ   r[   r     r   zWorker.__repr__c                 C   s<   | j r
| j j|  | jr| jj|  | tjj|  d S rW   )	r   r   r   r   _service_workersr   r   r   rj   r   rZ   rZ   r[   r     s
   zWorker._on_closec                 C   s
   | j d S )Nr   )r  r   rZ   rZ   r[   r     r!  z
Worker.urlrE  rF  c              	      (   t | jdd t|t|dI d H S )NevaluateExpressionrE  rF  )rC   r   rX  rY  rD   rH  rZ   rZ   r[   rG    s   zWorker.evaluatec              	      ry  )NevaluateExpressionHandler{  )r   r   rX  rY  rD   rH  rZ   rZ   r[   rI    s   zWorker.evaluate_handler   rW   )rd   re   rf   r   r   r   r  r   r\   r   r   rt  r   rA   r   rG  r@   rI  rw  rZ   rZ   r   r[   r     s4    

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   rV   Nc                    s   t  |||| d S rW   )r   r\   r   r   rZ   r[   r\     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   rR  resolve)rB     reject)error)r   r  rY  r   r   r   r  r  rC   r_   iscoroutiner   rX  rD   r  sysexc_infor   r   r;   )rY   r  r   rQ  rB  	func_argsr  tbrZ   rZ   r[   r    s,   

zBindingCall.call)
rd   re   rf   r   r  r   r\   r   r  rw  rZ   rZ   r   r[   r	    s    r	  paramrV   c                 C   s,   t | tjrt| jS t | trt| S d S rW   )r  rer   trim_endpatternr  )r  rZ   rZ   r[   rW    s
   

rW  sc                 C   s    t | dkr| d d d S | S )N2   u   …)r^   )r  rZ   rZ   r[   r    s   r  )vr   r  r_   r  r  pathlibr   typesr   typingr   r   r   r   r   r	   r
   r   r   r   r   playwright._impl._accessibilityr    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._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-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   playwright._impl._inputr=   r>   r?   playwright._impl._js_handler@   rA   rB   rC   rD   playwright._impl._networkrE   rF   rG   rH   rI   rJ   playwright._impl._videorK   playwright._impl._waiterrL   !playwright._impl._browser_contextrM   playwright._impl._fetchrN   playwright._impl._locatorrO   rP   rQ   rR   ri   r   r	  r  rW  r  rZ   rZ   rZ   r[   <module>   sb   4 `           &4