
    iv&                        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 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 d dlmZ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) d dl*m+Z+ erd dl,m-Z-  G d de          Z.dS )    )Path)SimpleNamespace)	TYPE_CHECKINGDictListOptionalPatternSequenceSetUnioncast)ClientCertificateGeolocationHttpCredentialsProxySettingsStorageStateViewportSize)Artifact)BrowserContext)
CDPSession)ChannelOwnerfrom_channel)is_target_closed_error)	ColorSchemeContrastForcedColorsHarContentPolicyHarModeReducedMotionServiceWorkersPolicylocals_to_paramsmake_dirs_for_file)Page)BrowserTypec            K       0    e Zd Z ed          Zdddedededd	f
 fd
ZdefdZ	 dFddde	e         dd	fdZ
dedd	fdZdedd	fdZdGdZedee         fd            ZedHd            ZdefdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dIdedededededededededed ee         d!eeef         d"ed#ed$ed%ed&ed'ed(ed)ed*ed+ed,ed-ed.ee ef         d/ed0ee ef         d1ed2ee!ee f         d3ed4ed5e"d6ee#e         ef         d7e$d8e%d9ee&         defJd:Z'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dIdedededededededededed ee         d!eeef         d"ed#ed$ed%ed&ed'ed)ed*ed(ed+ed,ed-ed.ee ef         d/ed0ee ef         d1ed2ee!ee f         d3ed4ed5e"d6ee#e         ef         d7e$d8e%d9ee&         de(fJd;Z)dFd<edd	fd=Z*edefd>            Z+de,fd?Z-	 	 	 	 dJd@e(dAeee f         dBedCee         dd	f
dDZ.de/fdEZ0 xZ1S )KBrowserdisconnected)Disconnectedparentr$   typeguidinitializerreturnNc                 D    t                                          ||||           d  _        d _        d _        d  _        t                       _        d  _         j	        
                    d fd            j	        
                    d fd           d  _        d S )NTFcontextc           	      z                         t          t          t          | d                                       S )Nr/   )_did_create_contextr   r   r   )paramsselfs    Y/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/playwright/_impl/_browser.py<lambda>z"Browser.__init__.<locals>.<lambda>M   s1    433^\&2C%D%DEE      closec                 ,                                     S N)	_on_close)_r3   s    r4   r5   z"Browser.__init__.<locals>.<lambda>Q   s    DNN,<,< r6   )super__init___browser_type_is_connected!_should_close_connection_on_close_cr_tracing_pathset	_contexts_traces_dir_channelon_close_reason)r3   r)   r*   r+   r,   	__class__s   `    r4   r=   zBrowser.__init__@   s     	t[9996:!16./3.1ee*.   	
 	
 	
 	"<"<"<"<===,0r6   c                 (    d| j          d| j         dS )Nz<Browser type=z	 version=>)r>   versionr3   s    r4   __repr__zBrowser.__repr__T   s     L 2LLT\LLLLr6   browser_type
traces_dirc                 `    || _         || _        | j        D ]}|                     |           d S r9   )r>   rD   rC   _setup_browser_context)r3   rN   rO   r/   s       r4   _connect_to_browser_typez Browser._connect_to_browser_typeW   sF     *%~ 	1 	1G''0000	1 	1r6   r/   c                     | |_         | j                            |           | j        r|                     |           d S d S r9   )_browserrC   addr>   rQ   r3   r/   s     r4   r1   zBrowser._did_create_contextc   sQ    7###  	1''00000	1 	1r6   c                     | j         |j        _         | j        J | j        j        j        j                            |           d S r9   )rD   _tracingr>   _playwright	selectors_contexts_for_selectorsrU   rV   s     r4   rQ   zBrowser._setup_browser_contextk   sE    '+'7$!---&0HLLWUUUUUr6   c                 ^    d| _         |                     t          j        j        |            d S )NF)r?   emitr&   Eventsr(   rL   s    r4   r:   zBrowser._on_closep   s)    "		'.-t44444r6   c                 *    t          | j                  S r9   )listrC   rL   s    r4   contextszBrowser.contextst   s    DN###r6   c                 "    | j         J | j         S r9   )r>   rL   s    r4   rN   zBrowser.browser_typex   s    !---!!r6   c                     | j         S r9   )r?   rL   s    r4   is_connectedzBrowser.is_connected}   s    !!r6   viewportscreen
noViewportignoreHTTPSErrorsjavaScriptEnabled	bypassCSP	userAgentlocale
timezoneIdgeolocationpermissionsextraHTTPHeadersofflinehttpCredentialsdeviceScaleFactorisMobilehasTouchcolorSchemereducedMotionforcedColorscontrastacceptDownloadsdefaultBrowserTypeproxyrecordHarPathrecordHarOmitContentrecordVideoDirrecordVideoSizestorageStatebaseURLstrictSelectorsserviceWorkersrecordHarUrlFilterrecordHarModerecordHarContentclientCertificatesc%                 Z  K   t          t                                }%| j        J | j                            |%           d {V  | j                            dd |%           d {V }&t          t          t          |&                    }'|'	                    |#|"|||!           d {V  |'S )N
newContext)record_har_contentrecord_har_moderecord_har_omit_contentrecord_har_pathrecord_har_url_filter)
r!   localsr>   _prepare_browser_context_paramsrE   sendr   r   r   _initialize_har_from_options)(r3   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r2   channelr/   s(                                           r4   new_contextzBrowser.new_context   s      N "&((++!--- @@HHHHHHHHH**<vFFFFFFFF~|G'<'<==22/)$8)"4 3 
 
 	
 	
 	
 	
 	
 	
 	
 r6   c%                     &K   t          t                                &dt          f& fd}% j                            |%d           d {V S )Nr-   c                     K    j         di  d {V } |                                  d {V }| |_        || _        |S )N )r   new_page_owned_context_owner_page)r/   pager2   r3   s     r4   innerzBrowser.new_page.<locals>.inner   si      ,D,66v66666666G ))++++++++D")D"&GKr6   zCreate page)title)r!   r   r#   _connectionwrap_api_call)'r3   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rx   ry   rw   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r2   s'   `                                     @r4   r   zBrowser.new_page   sv      N "&((++	T 	 	 	 	 	 	 	 %33E3OOOOOOOOOr6   reasonc                   K   || _         	 | j        r!| j                                         d {V  d S | j                            dd d|i           d {V  d S # t          $ r}t          |          s|Y d }~d S d }~ww xY w)Nr7   r   )rG   r@   r   
stop_asyncrE   r   	Exceptionr   )r3   r   es      r4   r7   zBrowser.close   s      #	5 L&1133333333333m(($68JKKKKKKKKKKK 	 	 	)!,,      	s   &A $A 
A?#A::A?c                     | j         d         S )NrK   )_initializerrL   s    r4   rK   zBrowser.version   s     ++r6   c                 b   K   t          | j                            dd            d {V           S )NnewBrowserCDPSession)r   rE   r   rL   s    r4   new_browser_cdp_sessionzBrowser.new_browser_cdp_session   s9      $-"4"45KT"R"RRRRRRRSSSr6   r   pathscreenshots
categoriesc                    K   t          t                                }|r
|j        |d<   |r&t          |          | _        t          |          |d<   | j                            dd |           d {V  d S )Nr   r   startTracing)r!   r   rE   strrA   r   )r3   r   r   r   r   r2   s         r4   start_tracingzBrowser.start_tracing   s       "&((++ 	+!]F6N 	'$'IID! YYF6Nm  v>>>>>>>>>>>r6   c           	        K   t          t          t          | j                            dd            d {V                     }|                                 d {V }|                                 d {V  | j        r]t          | j                   t          | j        d          5 }|
                    |           d d d            n# 1 swxY w Y   d | _        |S )NstopTracingwb)r   r   r   rE   r   read_info_bufferdeleterA   r"   openwrite)r3   artifactbufferfs       r4   stop_tracingzBrowser.stop_tracing	  s*     l););M4)P)P#P#P#P#P#P#PQQ
 
  0022222222oo  	)t4555d+T22  a                             $(D!s   (C

CCr9   )r-   N)r-   r$   )$NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)NNNN)2__name__
__module____qualname__r   r^   r   r   r=   rM   r   rR   r   r1   rQ   r:   propertyr   ra   rN   boolrd   r   r   r
   r   floatr   r   r   r   r   r   r   r   r    r	   r   r   r   r   r#   r   r7   rK   r   r   r   bytesr   __classcell__)rH   s   @r4   r&   r&   ;   sB       _#  F1#1+.1691HL1	1 1 1 1 1 1(M# M M M M %)
1 
1#
1 SM
1 
	
1 
1 
1 
11> 1d 1 1 1 1Vn V V V V V
5 5 5 5 $$~. $ $ $ X$ " " " X""d " " " "
 "&#"&"&#'%)+/+/#'#''+%)! $"&#*.%)+/(,7; $/37;!%-16:K4 44 4 	4
  4  4 4 4 4 4 !4 c]4 sCx.4 4 )4  !!4" #4$ %4& !'4( %)4* #+4, -4. /40  142 344 T3Y'546 #748 dCi(94: &;4< L#t34=4> ?4@ A4B -C4D "'#,"34E4F G4H +I4J !!23K4L 
M4 4 4 4p "&#"&"&#'%)+/+/#'#'%)!'+ $"&#*.%)+/(,7; $/37;!%-16:K0P 0P0P 0P 	0P
  0P  0P 0P 0P 0P 0P !0P c]0P sCx.0P 0P )0P  !!0P" #0P$ %0P& !'0P( #)0P* +0P, %-0P. /0P0  10P2 30P4 T3Y'50P6 #70P8 dCi(90P: &;0P< L#t34=0P> ?0P@ A0PB -C0PD "'#,"34E0PF G0PH +I0PJ !!23K0PL 
M0P 0P 0P 0Pd	 	# 	 	 	 	 	 , , , , X,Tz T T T T
 !% $(? ?? CI? 	?
 SM? 
? ? ? ?E        r6   r&   N)/pathlibr   typesr   typingr   r   r   r   r	   r
   r   r   r    playwright._impl._api_structuresr   r   r   r   r   r   playwright._impl._artifactr   !playwright._impl._browser_contextr   playwright._impl._cdp_sessionr   playwright._impl._connectionr   r   playwright._impl._errorsr   playwright._impl._helperr   r   r   r   r   r   r    r!   r"   playwright._impl._pager#   playwright._impl._browser_typer$   r&   r   r6   r4   <module>r      s%         ! ! ! ! ! !
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                0 / / / / / < < < < < < 4 4 4 4 4 4 C C C C C C C C ; ; ; ; ; ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ( ' ' ' ' ' ;::::::Y Y Y Y Yl Y Y Y Y Yr6   