o
    PjKy                     @   sx  d dl 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mZmZ d dlmZm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- d dl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? d dl@mAZA d dlBmCZC d dlDmEZE erd dlFmGZG G dd deZHdS )    N)Path)TYPE_CHECKINGAnyDictListLiteralOptionalPatternSequenceSetUnioncast)EventEmitter)AriaRoleDropPayloadFilePayloadFrameExpectOptionsFrameExpectResultPosition)ChannelOwnerfrom_channelfrom_nullable_channel)ElementHandleconvert_select_option_values)Error)EventContextManagerImpl)
DocumentLoadStateFrameNavigatedEventKeyboardModifierMouseButtonTimeoutSettingsURLMatchasync_readfilelocals_to_paramsmonotonic_timeurl_matches)JSHandleSerializableadd_source_url_to_scriptparse_resultparse_valueserialize_argument)
FrameLocatorLocatorget_by_alt_text_selectorget_by_label_selectorget_by_placeholder_selectorget_by_role_selectorget_by_test_id_selectorget_by_text_selectorget_by_title_selectortest_id_attribute_name)Response)convert_input_files)Waiter)Pagec                       s4  e Zd Zdededededdf
 fddZdefd	d
Z	ddededdfddZ	de
ddfddZdedefddZedddZ			ddededededee f
ddZddededefdd Z	ddee d!ed"ed#edef
d$d%Z			ddedededee fd&d'Z		ddedededdfd(d)Z		dd*ed+ deddfd,d-Z	dd*ededdfd.d/Zdee defd0d1Z dee defd2d3Z!de"fd4d5Z#dd!ed6e$de%fd7d8Z&	dd!ed6e$de'fd9d:Z(	dded;e)dee" fd<d=Z*dede+e" fd>d?Z,			dded;e)ded*ed@ dee" f
dAdBZ-	dded;e)dede)fdCdDZ.	dded;e)dede)fdEdFZ/	dded;e)dede)fdGdHZ0	dded;e)dede)fdIdJZ1dded;e)de)fdKdLZ2dded;e)de)fdMdNZ3			ddededOed;e)deddfdPdQZ4		dded!ed6e$d;e)de%f
dRdSZ5	dded!ed6e$de%fdTdUZ6defdVdWZ7		ddXedededdfdYdZZ8edefd[d\Z9edefd]d^Z:eded  fd_d`Z;ede+d  fdadbZ<de)fdcddZ=				ddedee>ee?f dfedede"f
dgdhZ@	ddedee>ee?f dfede"fdidjZA										ddedkeBeC dleDdmedneEdoededpe)dqe)d;e)dre)ddfdsdtZF											ddedkeBeC dleDdmedneEdoededpe)dqe)d;e)dre)dueddfdvdwZG									ddedkeBeC dleDdmedneEdedpe)dqe)d;e)dre)ddfdxdyZH							ddedkeBeC dleDdedpe)dqe)d;e)dre)ddfdzd{ZI				dded|ededqe)d;e)dpe)ddfd}d~ZJ					dded|ededqe)d;e)dpe)d#eddfddZK				ddede>eeLe f de>eeLe f deMdeMdeMfddZN	dde>eeLe f de)ddfddZO	dde>eeLe f de)ddfddZP	dde>eeLe f de)ddfddZQ										ddeRde)de)de)de)dede>eeLe f de)de)de)de>eeLe f ddfddZSde>eeLe f ddfddZT	dde>eeLe f de)ddfddZU	dde>eeLe f de)ddfddZVdedeWfddZX	dded;e)deddfddZY	dded;e)dedee fddZZ	dded;e)dedefddZ[	dded;e)dedefddZ\	ddeded;e)dedee f
ddZ]							ddedkeBeC dleDdedqe)dpe)d;e)dre)ddfddZ^								ddededeDdeDdpe)dqe)d;e)dedre)dueddfddZ_								dded|e>eeBe f de>eeBe f de>eeBe f de>deBd f dedqe)d;e)dpe)de+e fddZ`		dded;e)dedefddZa			ddede>ee?ebeBe>ee?f  eBeb f d;e)dedqe)ddfddZc			ddeddd;e)dleDdeddfddńZd				ddededmed;e)dedqe)ddfddǄZe				ddededmed;e)dedqe)ddfddʄZf						ddedleDdedpe)dqe)d;e)dre)ddfdd̄Zg						ddedleDdedpe)dqe)d;e)dre)ddfdd΄ZhdeddfddЄZi			dd!ed6e$dede>eed f de'f
ddԄZjdefddքZk						ddede)dleDdedpe)dqe)d;e)dre)ddfdd؄ZlddededdfddۄZmdeddfdd݄Zn  ZoS )FrameparenttypeguidinitializerreturnNc                    s   t  |||| t|d _ jr jj  |d  _|d  _d _	g  _d  _
t|d  _t  _ jd fdd  jd	 fd
d d S )NparentFramenameurlF
loadStates	loadstatec                    s     | d| dS )Naddremove)_on_load_stategetparamsself L/home/thesage/.local/lib/python3.10/site-packages/playwright/_impl/_frame.py<lambda>j   s    z Frame.__init__.<locals>.<lambda>	navigatedc                    s
     | S N)_on_frame_navigatedrI   rK   rM   rN   rO   n   s   
 )super__init__r   rH   _parent_frame_child_framesappend_name_url	_detached_pageset_load_statesr   _event_emitter_channelon)rL   r;   r<   r=   r>   	__class__rK   rN   rT   Z   s&   



zFrame.__init__c                 C   s   d| j  d| jdS )Nz<Frame name=z url=>)rA   rB   rK   rM   rM   rN   __repr__q   s   zFrame.__repr__rE   rF   c                 C   s   |r| j | | jd| n|r|| j v r| j | | js8|dkr8| jr8| jd| j | jjd| j | jsL|dkrN| jrP| jd| j d S d S d S d S )NrD   loadpageloaddomcontentloaded)r]   rE   r^   emitrF   rU   r[   context)rL   rE   rF   rM   rM   rN   rG   t   s   zFrame._on_load_stateeventc                 C   sZ   |d | _ |d | _| jd| d|vr)| jr+| jd|  | jjd|  d S d S d S )NrB   rA   rP   errorframenavigated)rY   rX   r^   rh   r[   ri   )rL   rj   rM   rM   rN   rR      s   

zFrame._on_frame_navigatedselectorc                    s   | j dd d|iI d H S )N
queryCountrm   r_   sendrL   rm   rM   rM   rN   _query_count   s   zFrame._query_countr9   c                 C   s   | j sJ | j S rQ   )r[   rK   rM   rM   rN   page   s   
z
Frame.pagerB   timeout	waitUntilrefererc              	      s.   t tt t| jd| jtt I d H S )Ngoto)	r   r   r6   r   r_   rp   _navigation_timeoutr#   locals)rL   rB   rt   ru   rv   rM   rM   rN   rw      s   z
Frame.goto	wait_namec                    s    j sJ t j d| }| j d fdd | j dtd | j dtd fd	d  j j|}||d
| d |S )Nzframe.closec                      s   t d j S )Nr9   )r   r[   _close_error_with_reasonrM   rK   rM   rN   rO      s    z0Frame._setup_navigation_waiter.<locals>.<lambda>crashz'Navigation failed because page crashed!framedetachedzNavigating frame was detached!c                    s   |  kS rQ   rM   )framerK   rM   rN   rO      s    zTimeout zms exceeded.)r[   r8   reject_on_eventr   _timeout_settingsnavigation_timeoutreject_on_timeout)rL   rz   rt   waiterrM   rK   rN   _setup_navigation_waiter   s&   


zFrame._setup_navigation_waiter
expressionoptionstitlec              
      s   d|v rt |d |d< z| jjd| j||d||dI d H  d|d iW S  ty } zJ|js6|ttt	t
f |j}|d}|rYd|v rQt|d nd |d	d
}t|d||d|drod|d  nd |jdW  Y d }~S d }~ww )NexpectedValueexpect)rm   r   r   matchesisNotreceivedvalueariaSnapshot)r   r   timedOutcustomErrorMessagezError: )r   r   r   errorMessagelog)r+   r_   rp   _timeoutrH   r   _detailsr   r   strr   r*   bool_log)rL   rm   r   r   r   edetailsr   rM   rM   rN   _expect   sD   

zFrame._expectc                    s   j sJ s	d|d u rj j }t |  d|r&d dnd}d| d d d	td
tffdd}jj	d|d d
t
t f fdd}tt| S )Nre   expect_navigationz to "" zwaiting for navigationz until ''rj   r?   c                    s@   |  drdS d| d  d ttd jjj| d S )Nrk   Tz  navigated to "rB   r   r9   )rH   r   r%   r   r[   _browser_context	_base_url)rj   )rL   rB   r   rM   rN   	predicate   s   
z*Frame.expect_navigation.<locals>.predicaterP   )r   c                     s     I d H } d| v rt| d jvr* t  }|dkr*j|dI d H  d| v rCd| d v rCt| d d }| I d H S d S )Nrk   r   statert   newDocumentrequest)resultr   r]   r$   _wait_for_load_state_implr   response)rj   tr   )deadlinerL   ru   r   rM   rN   continuation  s   

z-Frame.expect_navigation.<locals>.continuation)r[   r   r   r$   r   r   r   r   wait_for_eventr^   r   r6   r   asynciocreate_task)rL   rB   ru   rt   to_urlr   r   rM   )r   rL   rB   ru   r   rN   r      s"   

zFrame.expect_navigationc              	      s   | j sJ t| j jj| j|r| j||dI d H  d S | j|||d4 I d H  W d   I d H  d S 1 I d H s:w   Y  d S )Nr   )rB   ru   rt   )r[   r%   r   r   rB   r   r   )rL   rB   ru   rt   rM   rM   rN   wait_for_url  s   
.zFrame.wait_for_urlr   )rg   re   networkidlec                    s   |  ||I d H S rQ   )r   )rL   r   rt   rM   rM   rN   wait_for_load_state%  s   zFrame.wait_for_load_statec                    s    sd  dvrt d| d| | jv r'd  d d  ndtdtf fd	d
}| jd| 	 I d H  d S )Nre   )re   rg   r   commitzAstate: expected one of (load|domcontentloaded|networkidle|commit)r   z  not waiting, "z" event already firedactual_stater?   c                    s    d|  d |  kS )Nr   z" event fired)r   )r   r   r   rM   rN   handle_load_state_event=  s   z@Frame._wait_for_load_state_impl.<locals>.handle_load_state_eventrD   )
r   r   r]   r   _fulfillr   r   r   r^   r   )rL   r   rt   r   rM   r   rN   r   ,  s$   
zFrame._wait_for_load_state_implc                 C       | j r| j jntd }||S rQ   )r[   r   r    rt   rL   rt   timeout_settingsrM   rM   rN   r   H     
zFrame._timeoutc                 C   r   rQ   )r[   r   r    r   r   rM   rM   rN   rx   N  r   zFrame._navigation_timeoutc                    s   t | jdd I d H S )NframeElement)r   r_   rp   rK   rM   rM   rN   frame_elementT  s   zFrame.frame_elementargc              	      (   t | jdd t|t|dI d H S )NevaluateExpressionr   r   r)   r_   rp   dictr+   rL   r   r   rM   rM   rN   evaluateW  s   zFrame.evaluatec              	      r   )NevaluateExpressionHandler   )r   r_   rp   r   r+   r   rM   rM   rN   evaluate_handlec  s   zFrame.evaluate_handlestrictc                    s"   t | jdd tt I d H S )NquerySelector)r   r_   rp   r#   ry   rL   rm   r   rM   rM   rN   query_selectorq  s   zFrame.query_selectorc              
      s(   t tt| jdd t|dI d H S )NquerySelectorAll)rm   )listmapr   r_   rp   r   rq   rM   rM   rN   query_selector_allx  s   zFrame.query_selector_all)attacheddetachedhiddenvisiblec                    s$   t | jd| jtt I d H S )NwaitForSelector)r   r_   rp   r   r#   ry   )rL   rm   r   rt   r   rM   rM   rN   wait_for_selector  s   zFrame.wait_for_selectorc                        | j d| jtt I d H S )N	isCheckedr_   rp   r   r#   ry   rL   rm   r   rt   rM   rM   rN   
is_checked     
zFrame.is_checkedc                    r   )N
isDisabledr   r   rM   rM   rN   is_disabled  r   zFrame.is_disabledc                    r   )N
isEditabler   r   rM   rM   rN   is_editable  r   zFrame.is_editablec                    r   )N	isEnabledr   r   rM   rM   rN   
is_enabled  r   zFrame.is_enabledc                    r   )NisHiddenr   r   rM   rM   rN   	is_hidden     
zFrame.is_hiddenc                    r   )N	isVisibler   r   rM   rM   rN   
is_visible  r   zFrame.is_visible	eventInitc                    s4   | j d| jtt||t|||dI d H  d S )NdispatchEvent)rm   r<   r   r   rt   )r_   rp   r   r#   r   r+   )rL   rm   r<   r   r   rt   rM   rM   rN   dispatch_event  s   zFrame.dispatch_eventc                    s0   t | jdd tt||t||dI d H S )NevalOnSelector)rm   r   r   r   )r)   r_   rp   r#   r   r+   )rL   rm   r   r   r   rM   rM   rN   eval_on_selector  s   zFrame.eval_on_selectorc              
      s*   t | jdd t||t|dI d H S )NevalOnSelectorAll)rm   r   r   r   )rL   rm   r   r   rM   rM   rN   eval_on_selector_all  s   zFrame.eval_on_selector_allc                       | j dd I d H S )Ncontentro   rK   rM   rM   rN   r        zFrame.contenthtmlc                    $   | j d| jtt I d H  d S )N
setContent)r_   rp   rx   r#   ry   )rL   r   rt   ru   rM   rM   rN   set_content  s   zFrame.set_contentc                 C   
   | j pdS Nr   )rX   rK   rM   rM   rN   rA         
z
Frame.namec                 C   r   r   )rY   rK   rM   rM   rN   rB     r   z	Frame.urlc                 C      | j S rQ   )rU   rK   rM   rM   rN   parent_frame  s   zFrame.parent_framec                 C   s
   | j  S rQ   )rV   copyrK   rM   rM   rN   child_frames  r   zFrame.child_framesc                 C   r   rQ   )rZ   rK   rM   rM   rN   is_detached  s   zFrame.is_detachedpathr   c                    sL   t t }|rtt|I d H  ||d< |d= t| jdd |I d H S )Nr   r   addScriptTag)r#   ry   r(   r"   decoder   r_   rp   )rL   rB   r   r   r<   rJ   rM   rM   rN   add_script_tag  s   
zFrame.add_script_tagc                    sZ   t t }|r t|I d H  d tt| d |d< |d= t| jdd |I d H S )Nz
/*# sourceURL=z*/r   r   addStyleTag)	r#   ry   r"   r  r   r   r   r_   rp   )rL   rB   r   r   rJ   rM   rM   rN   add_style_tag"  s   

zFrame.add_style_tag	modifierspositiondelaybutton
clickCountforcenoWaitAftertrialc                    "   | j di tt I d H  d S NrM   )_clickr#   ry   )rL   rm   r  r  r  r  r	  rt   r
  r  r   r  rM   rM   rN   click0  s    zFrame.clickstepsc                    r   )Nr  r   )rL   rm   r  r  r  r  r	  rt   r
  r  r   r  r  rM   rM   rN   r  @  s   "zFrame._clickc                    s(   | j jd| jtt ddI d H  d S )NdblclickzDouble clickr   r   )rL   rm   r  r  r  r  rt   r
  r  r   r  rM   rM   rN   r  Q  s   zFrame.dblclickc	           	         r   )Ntapr   )	rL   rm   r  r  rt   r
  r  r   r  rM   rM   rN   r  b     "z	Frame.tapr   c                    r  r  )_fillr#   ry   )rL   rm   r   rt   r  r   r
  rM   rM   rN   fillo  s    	z
Frame.fillc                    r   )Nr  r   )rL   rm   r   rt   r  r   r
  r   rM   rM   rN   r  z     "
zFrame._fillhasText
hasNotTexthashasNotc                 C   s   t | |||||dS )N)has_texthas_not_textr  has_not)r-   )rL   rm   r  r  r  r  rM   rM   rN   locator  s   zFrame.locatortextexactr-   c                 C      |  t||dS N)r!  )r  r.   rL   r   r!  rM   rM   rN   get_by_alt_text     zFrame.get_by_alt_textc                 C   r"  r#  )r  r/   r$  rM   rM   rN   get_by_label  r&  zFrame.get_by_labelc                 C   r"  r#  )r  r0   r$  rM   rM   rN   get_by_placeholder  r&  zFrame.get_by_placeholderrolecheckeddisabledexpandedincludeHiddenlevelrA   pressedselecteddescriptionc                 C   s$   |  t|||||||||	|
|dS )N)
r*  r+  r,  r-  r.  rA   r/  r0  r!  r1  )r  r1   )rL   r)  r*  r+  r,  r-  r.  rA   r/  r0  r!  r1  rM   rM   rN   get_by_role  s   zFrame.get_by_roletestIdc                 C   s   |  tt |S rQ   )r  r2   r5   )rL   r3  rM   rM   rN   get_by_test_id  s   zFrame.get_by_test_idc                 C   r"  r#  )r  r3   r$  rM   rM   rN   get_by_text  r&  zFrame.get_by_textc                 C   r"  r#  )r  r4   r$  rM   rM   rN   get_by_title  r&  zFrame.get_by_titlec                 C   s
   t | |S rQ   )r,   rq   rM   rM   rN   frame_locator  s   
zFrame.frame_locatorc                    r   )Nfocusr   r   rM   rM   rN   r8    s   "zFrame.focusc                    r   )NtextContentr   r   rM   rM   rN   text_content  r   zFrame.text_contentc                    r   )N	innerTextr   r   rM   rM   rN   
inner_text  r   zFrame.inner_textc                    r   )N	innerHTMLr   r   rM   rM   rN   
inner_html  r   zFrame.inner_htmlc                    r   )NgetAttributer   )rL   rm   rA   r   rt   rM   rM   rN   get_attribute  r   zFrame.get_attributec	           	         r   )Nhoverr   )	rL   rm   r  r  rt   r  r
  r   r  rM   rM   rN   rA    r  zFrame.hoversourcetargetsourcePositiontargetPositionc                    r   )NdragAndDropr   )rL   rB  rC  rD  rE  r
  r  r   rt   r  r  rM   rM   rN   drag_and_drop  s   zFrame.drag_and_dropindexlabelelementr   c
              	      s@   t td||||	dt||||}
| jd| j|
I d H S )N)rm   rt   r   r
  selectOptionrM   )r#   r   r   r_   rp   r   )rL   rm   r   rH  rI  rJ  rt   r  r   r
  rJ   rM   rM   rN   select_option  s   	zFrame.select_optionc                    r   )N
inputValuer   r   rM   rM   rN   input_value*  s   
zFrame.input_valuefilesc              	      sD   t || jjI d H }| jd| j||| |d|I d H  d S )NsetInputFiles)rm   r   rt   )r7   rs   ri   r_   rp   r   )rL   rm   rO  r   rt   r  	convertedrM   rM   rN   set_input_files4  s   
zFrame.set_input_filespayloadr   c           
         s   ||||  |d}|r|dnd }|d ur3t|| jjI d H }d|v s*d|v r.td|| |r:|dnd }	|	d urKdd |	 D |d< | j	d	| j |I d H  d S )
N)rm   r   r  rt   rO  directoryStreamdirectoryLocalPathzEDropping a directory is not supported, pass individual files instead.datac                 S   s   g | ]	\}}||d qS ))mimeTyper   rM   ).0kvrM   rM   rN   
<listcomp>b  s    zFrame._drop.<locals>.<listcomp>drop)
r   rH   r7   rs   ri   r   updateitemsr_   rp   )
rL   rm   rS  r   r  rt   rJ   rO  rQ  rV  rM   rM   rN   _dropJ  s$   	
zFrame._dropc                    r   )Nr<   r   )rL   rm   r   r  r   rt   r  rM   rM   rN   r<   e     "	z
Frame.typekeyc                    r   )Npressr   )rL   rm   ra  r  r   rt   r  rM   rM   rN   rb  p  r`  zFrame.pressc                    r   )Ncheckr   rL   rm   r  rt   r
  r  r   r  rM   rM   rN   rc  {  r  zFrame.checkc                    r   )Nuncheckr   rd  rM   rM   rN   re    r  zFrame.uncheckc                        | j dd d|iI d H  d S )NwaitForTimeoutwaitTimeoutro   )rL   rt   rM   rM   rN   wait_for_timeout     zFrame.wait_for_timeoutpollingrafc                    sl   t |tr|dkrtd| tt }t||d< |d ur(|dkr(||d< t| jd| j	|I d H S )Nrl  zUnknown polling option: r   pollingIntervalwaitForFunction)

isinstancer   r   r#   ry   r+   r   r_   rp   r   )rL   r   r   rt   rk  rJ   rM   rM   rN   wait_for_function  s   
zFrame.wait_for_functionc                    r   )Nr   ro   rK   rM   rM   rN   r     r   zFrame.titlec	           	         sF   |r| j ||||||dI d H  d S | j||||||dI d H  d S )N)rm   r  rt   r
  r   r  )rc  re  )	rL   rm   r*  r  rt   r
  r  r   r  rM   rM   rN   set_checked  s$   	zFrame.set_checkedstylec                    s"   | j dd ||dI d H  d S )N	highlight)rm   rr  ro   )rL   rm   rr  rM   rM   rN   
_highlight  s   zFrame._highlightc                    rf  )NhideHighlightrm   ro   rq   rM   rM   rN   _hide_highlight  rj  zFrame._hide_highlight)NN)r?   r9   )NNNrQ   )NNNN)
NNNNNNNNNN)NNNNNNNNNNN)	NNNNNNNNN)NNNNNNN)NNNNN)NNNNNNNN)NNNNNN)p__name__
__module____qualname__r   r   r   rT   rd   r   rG   r   rR   intrr   propertyrs   floatr   r6   rw   r8   r   r   r   r   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   rA   rB   r   r   r   r   r   r  r  r
   r   r   r   r  r  r  r  r  r  r	   r-   r  r%  r'  r(  r   r2  r4  r5  r6  r,   r7  r8  r:  r<  r>  r@  rA  rG  rL  rN  r   rR  r_  r<   rb  rc  re  ri  rp  r   rq  rt  rv  __classcell__rM   rM   ra   rN   r:   Y   s|   


/
5









	








	

	

	

	


	




	









	

	

	


	



	
	

	

r:   )Ir   pathlibr   typingr   r   r   r   r   r   r	   r
   r   r   r   pyeer    playwright._impl._api_structuresr   r   r   r   r   r   playwright._impl._connectionr   r   r    playwright._impl._element_handler   r   playwright._impl._errorsr   'playwright._impl._event_context_managerr   playwright._impl._helperr   r   r   r   r    r!   r"   r#   r$   r%   playwright._impl._js_handler&   r'   r(   r)   r*   r+   playwright._impl._locatorr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   playwright._impl._networkr6   )playwright._impl._set_input_files_helpersr7   playwright._impl._waiterr8   playwright._impl._pager9   r:   rM   rM   rM   rN   <module>   s$   4 0 0