a
    7ñ»j(ù  ã                k   @   sR   d Z ddlmZmZ ddlmZmZ ddlmZ ed	eeedf dœdd„ƒZ	dS )
aj  
SeleniumBase as a Python Context Manager.
#########################################

The SeleniumBase SB Context Manager:
Usage --> ``with SB() as sb:``

Example -->

```python
from seleniumbase import SB

with SB(uc=True, test=True) as sb:
    url = "https://google.com/ncr"
    sb.activate_cdp_mode(url)
    sb.click_if_visible('button:contains("Accept all")')
    sb.type('[name="q"]', "SeleniumBase GitHub page")
    sb.click('[value="Google Search"]')
    sb.sleep(2)
    print(sb.get_page_title())
```

# (The browser exits automatically after the "with" block ends.)

#########################################
é    )ÚcontextmanagerÚsuppress)ÚAnyÚ	Generator)ÚBaseCaseN)Úreturncj           ½      c   s´,  ddl }jddl}kddl}lddl}mddl}nddl}oddlm}p ddlm	}q ddl
m}r ddlm}s ddlm}t |p}ud|p_|mj}vd	 |v¡}wd}xd}yd
|vv pœd|vv }zt|pdƒo¬|pj}{d}|d}}t|pdƒrÆ|pjsæt|pdƒrÖ|pjsæt|pdƒrø|pjrød}y| ròd}}d} n| du �rd|vv �rd} |y�r’t|pdƒ�s’t|pdƒ�rt|pj�rtddl}~d}|z�sZ|{�sZtd| ƒ |z�sf|{�s�|~jdd� nt|pdƒ�rž|pj�ržtdƒ‚n|y�ržd|p_|y�sÂt|pdƒ�sÂ| �rÂd|p_d}|n| �rÊn d}€| �rØd}€|�s|�sd|vv �sd|vv �sd|vv �sd|vv �sd|vv �rd}nd}d|p_d|p_d|p_d}�d}‚d}ƒg }„d}…|/�rvt t!|/ƒƒdk�rv|lj" #t!|/ƒ¡�rvd}…n|vD ]}†|†dv �rzd}…�qz|�rþ||sj$j%v �rþ|…�sþ|r &|¡}‡|‡�rþ|lj" #|‡¡�rþ||‡ '¡  (d¡d   (d!¡d  v �rþ||p_|‡|p_|‡}/d}…d"|vv �sd#|vv �r(|�d$7 }�d%}‚|„ )d"¡ d&|vv �s<d'|vv �rR|�d$7 }�d(}‚|„ )d&¡ d)|vv �sfd*|vv �r||�d$7 }�d+}‚|„ )d)¡ d,|vv �s�d-|vv �r¦|�d$7 }�d.}‚|„ )d,¡ d/|vv �sºd0|vv �rÐ|�d$7 }�d1}‚|„ )d/¡ d2|vv �säd3|vv �rú|�d$7 }�d4}‚|„ )d2¡ d5|vv �sd6|vv �rT|…�sT|r &d7¡}‡|lj" #|‡¡�rT|�d$7 }�d7}‚d7|p_d7|p_|‡|p_|„ )d5¡ d8|vv �shd9|vv �r®|…�s®|r &d:¡}‡|lj" #|‡¡�r®|�d$7 }�d:}‚d:|p_d:|p_|‡|p_|„ )d8¡ d;|vv �sÂd<|vv �r|…�s|r &d=¡}‡|lj" #|‡¡�r|�d$7 }�d=}‚d=|p_d=|p_|‡|p_|„ )d;¡ d>|vv �sd?|vv �rb|…�sb|r &d@¡}‡|lj" #|‡¡�rb|�d$7 }�d@}‚d@|p_d@|p_|‡|p_|„ )d>¡ |‚}ƒdA|vv �r–|‚d%k�s–|�d$7 }�d%}ƒd%|p_|„ )dA¡ dB|vv �rÆ|‚d(k�sÆ|�d$7 }�d(}ƒd(|p_|„ )dB¡ dC|vv �rö|‚d+k�sö|�d$7 }�d+}ƒd+|p_|„ )dC¡ dD|vv �r&|‚d1k�s&|�d$7 }�d1}ƒd1|p_|„ )dD¡ dE|vv �rV|‚d.k�sV|�d$7 }�d.}ƒd.|p_|„ )dE¡ dF|vv �r°|‚d7k�s°|…�s°|r &d7¡}‡|lj" #|‡¡�r°|�d$7 }�d7}ƒd7|p_d7|p_|‡|p_|„ )dF¡ dG|vv �r
|‚d:k�s
|…�s
|r &d:¡}‡|lj" #|‡¡�r
|�d$7 }�d:}ƒd:|p_d:|p_|‡|p_|„ )dG¡ dH|vv �rd|‚d=k�sd|…�sd|r &d=¡}‡|lj" #|‡¡�rd|�d$7 }�d=}ƒd=|p_d=|p_|‡|p_|„ )dH¡ dI|vv �r¾|‚d@k�s¾|…�s¾|r &d@¡}‡|lj" #|‡¡�r¾|�d$7 }�d@}ƒd@|p_d@|p_|‡|p_|„ )dI¡ |�d$k�r dJ}ˆ|ˆdK|�dL |„¡f 7 }ˆ|ˆdM7 }ˆ|ˆdN7 }ˆ|�s t|ˆƒ‚|du �r|ƒ�r|ƒ}nd%}n| '¡ }|sj*j+}‰||‰v�rFtdO||‰f ƒ‚|du �rddP|vv �r`d}nd}|du �r‚dQ|vv �r~d}nd}|�rŒd}|du �rªdR|vv �r¦d}nd}|du �r¸dS}|Udu�rÐ|	du �rÐ|U}	|	du �rÞdT}	|
du �rìdU}
|F�södV}F|du �	rdW|vv �	rd}nd}|Vdu�	r,|du �	r,|V}|du �	rJdX|vv �	rFd}nd}|du �	rhdY|vv �	rdd}nd}| du �	r†dZ|vv �	r‚d} nd} |8du�	rž|7du �	rž|8}7|7du �	r¼d[|vv �	r¸d}7nd}7|7�	rÈd|p_,|}Š|Šdu �
rvd\|wv �
rvd]|wv �
r|w (d]¡d$  (d	¡d }Šn"d^|wv �
r&|w (d^¡d$  (d	¡d }Š|Š�
rv|Š -d_¡�
rR|Š .d_¡�
rR|Šd$d … }Šn$|Š -d`¡�
rv|Š .d`¡�
rv|Šd$d … }Š|(}‹|‹du �rda|wv �rd}Œ|vD ]n}†|† -db¡�
r¼|† (db¡d$ }‹ �qn>|†dak�
rút |vƒ|Œd$ k�
rú|v|Œd$  }‹|‹ -dc¡�
rôd}‹ �q|Œd$7 }Œ�
q–|‹}(|.}�|�du �ršdd|wv �ršd}Œ|vD ]n}†|† -de¡�rP|† (de¡d$ }� �qšn>|†ddk�rŽt |vƒ|Œd$ k�rŽ|v|Œd$  }�|� -dc¡�rˆd}� �qš|Œd$7 }Œ�q*|�}.|5du �r¶|Ldu�r¶|L}5|5}Ž|Ždu �rPdf|wv �sØdg|wv �rPd}Œ|vD ]n}†|† -dh¡�r|† (dh¡d$ }Ž �qPn>|†dfk�rDt |vƒ|Œd$ k�rD|v|Œd$  }Ž|Ž -dc¡�r>d}Ž �qP|Œd$7 }Œ�qà|Ž}5|6du �rl|Mdu�rl|M}6|6}�|�du �rüdi|wv �rüd}Œ|vD ]n}†|† -dj¡�r²|† (dj¡d$ }� �qün>|†dik�rðt |vƒ|Œd$ k�rð|v|Œd$  }�|� -dc¡�rêd}� �qü|Œd$7 }Œ�qŒ|�}6|;}�|�du �r�dk|wv �r�d}Œ|vD ]n}†|† -dl¡�rF|† (dl¡d$ }� �q�n>|†dkk�r„t |vƒ|Œd$ k�r„|v|Œd$  }�|� -dc¡�r~d}� �q�|Œd$7 }Œ�q |�};|du �r dm|wv �r d}Œ|vD ]n}†|† -dn¡�rÖ|† (dn¡d$ } �q n>|†dmk�rt |vƒ|Œd$ k�r|v|Œd$  }| -dc¡�rd} �q |Œd$7 }Œ�q°|}‘d}’|/du �r¾do|wv �r¾d}Œ|vD ]n}†|† -dp¡�rj|† (dp¡d$ }’ �q´n>|†dok�r¨t |vƒ|Œd$ k�r¨|v|Œd$  }’|’ -dc¡�r¢d}’ �q´|Œd$7 }Œ�qD|’�r¾|’}/|/du �rþdq|wv �rþ|vD ]&}†|† -dq¡�rÖ|† (dq¡d$ }/ �qþ�qÖ|]�r|/�sdr}/n"|[�r"|/�s"ds}/n|\�r2|/�s2dt}/du|vv �rH|/�sHdr}/n*dv|vv �r^|/�s^ds}/ndw|vv �rr|/�srdt}/|/�rœ|/ '¡ dtk�rœ|d%k�rœd}d}d}d}“|�rªd}“dx|vv �sÈdy|vv �sÈdz|vv �rÐd}“d}|=du �rîd{|vv �rêd}=nd}=|>du �rd||vv �rd}>nd}>|?du �r4d}|vv �s*d~|vv �r0d}?nd}?|:du �rRd|vv �rNd}:nd}:|t /¡ �s`d}:|�sŠ|O�sŠ|N�sŠ|�sŠ|P�sŠ|�sŠ|Q�rŽd}|�s |O�s |N�r¦d}n|d€|vv �s d�|vv �s d‚|vv �s dƒ|vv �s d„|vv �s d…|vv �s d†|vv �s d‡|vv �s dˆ|vv �rd}|du �r"|Qdu �r"d}nd}|�s.|Q�r4d}n(d†|vv �sRd‡|vv �sRdˆ|vv �rXd}nd}|�sh|P�rrd}d}n6dƒ|vv �sšd„|vv �sšd…|vv �sšd‰|vv �r¤d}d}nd}|�rÌ|dŠv�rÌd‹||f }ˆt|ˆƒ |Gdu �rôdŒ|vv �sêd�|vv �rðd}Gnd}G|t /¡ �r&|G�s&|�s&|�s&|:�s&|�s"d}nd}:|�r@|d+k�r@d}d}n|dŽv�rNd}|�s^|�s^d}G|=�rt|“�std}“d}n*|>�rŠ|“�sŠd}“d}n|?�rž|“�sžd}“d}|“�r¶|�r¶d}d}d}d|p_0d�|vv �sÐd�|vv �rÖd|p_0|D�rht1|Dt!ƒ�rht |Dƒdk�rhddl2}”d}•|D -d‘¡�r|D .d’¡�s d}•n8z|” 3|D¡}Dt1|Dt4ƒ�s<d}•W n t�yV   d}•Y n0 |•�rxtd“ƒ‚nt1|Dt4ƒ�sxi }D|du �rªd”|vv �s d•|vv �s d–|vv �r¦d}nd}|du �ræ|Idu �ræd—|vv �sÜd˜|vv �sÜd™|vv �ræd}d}InF|du �rú|Idu �s|Idu�r
|I�r|du�r$|�r$d}d}Ind}d}I|du �rt|Sdu �rtdš|vv �shd›|vv �shdœ|vv �shd�|vv �rnd}nd}n|�s€|S�r†d}nd}|du �r¨dž|vv �r¤d}nd}|du �rÆdŸ|vv �rÂd}nd}|du �räd |vv �ràd}nd}d}–|H�sød¡|vv �rüd}–d}—|J�r
d}—|Xdu�r"|`du �r"|X}`|`�s~d¢|wv �r~d£|vv �sFd¤|vv �rLd¥}`n2d¦|vv �s`d§|vv �rfd¨}`nd©|vv �szdª|vv �r~d«}`|`du�r¨|` '¡ d¬v�ržtd­ƒ‚|` '¡ }`nLd©|vv �s¼dª|vv �rÂd«}`n2d¦|vv �sÖd§|vv �rÜd¨}`nd£|vv �sðd¤|vv �rôd¥}`|Ydu�r|1du �r|Y}1|1du �r<d®|vv �s4d¯|vv �s4d°|vv �rHd|q_5n|1�rH|1|q_5|Zdu�r`|2du �r`|Z}2|2du �r�d±|vv �sˆd²|vv �sˆd³|vv �rœd|q_6n|2�rœ|2|q_6|^du �rÎd´|vv �sÄdµ|vv �sÄd¶|vv �rÊd}^nd}^|_du �röd·|vv �sìd¸|vv �ròd}_nd}_|^�r|_�rd}^|d.k�r|�rd}d}|bdu �r<d¹|vv �r8d}bnd}bd}˜|c�rLd}˜ndº|vv �rZd}˜d}™|d�rjd}™nd»|vv �rxd}™|&du �r d¼|vv �s–d½|vv �rœd}&nd}&|'du �rÈd¾|vv �s¾d¿|vv �rÄd}'nd}'|3du �rò|Wdu �ròdÀ|vv �rìd}3nd}3n|3�sþ|W�rd}3nd}3|4du �r0dÁ|vv �s&dÂ|vv �r,d}4nd}4|!du �rXdÃ|vv �sNdÄ|vv �rTd}!nd}!|"du �r€dÅ|vv �svdÆ|vv �r|d}"nd}"|#du �rždÇ|vv �ršd}#nd}#|Rdu�r¶|du �r¶|R}|du �rNdÈ|wv �rä|w (dÈ¡d$  (d_¡d }njdÉ|wv �r|w (dÉ¡d$  (d	¡d }nFdÊ|wv �r,|w (dÊ¡d$  (d_¡d }n"dË|wv �rN|w (dË¡d$  (d	¡d }|Tdu�rf|$du �rf|T}$|$du �rŽdÌ|vv �s„dÍ|vv �rŠd}$nd}$|%du �rÞdÎ|wv �r¼|w (dÎ¡d$  (d_¡d }%n"dÏ|wv �rÞ|w (dÐ¡d$  (d_¡d }%|0du �rjdÑ|wv �rjd}Œ|vD ]n}†|† -dÒ¡�r |† (dÒ¡d$ }0 �qjn>|†dÑk�r^t |vƒ|Œd$ k�r^|v|Œd$  }0|0 -dc¡�rXd}0 �qj|Œd$7 }Œ�qú|0du �rödÓ|wv �röd}Œ|vD ]n}†|† -dÔ¡�r¬|† (dÔ¡d$ }0 �qön>|†dÓk�rêt |vƒ|Œd$ k�rê|v|Œd$  }0|0 -dc¡�räd}0 �qö|Œd$7 }Œ�q†|gdu�r*zt7|gƒ}gW n t�y(   tdÕƒ‚Y n0 |hdu�r^zt8|hƒ}hW n t�y\   tdÖƒ‚Y n0 |idu�r’zt8|iƒ}iW n t�y�   td×ƒ‚Y n0 |€|p_9||p_:|pj�r®|pj|p_:t|pdƒ�sÀd|p_t|pdƒ�sÒd|p_t|pdƒ�säd|p_d|p_;||p_<||p_=||p_>|G|p_?|:|p_@|;|p_A|<|p_B||p_C||p_D|	|p_E|
|p_F|@|p_G|A|p_H|B|p_I|C|p_J|D|p_K|E|p_L|F|p_M|F|p_N|‘|p_O||p_P||p_Q||p_R| |p_S|7|p_,|9|p_T|,|p_U|-|p_VdV|p_W|sjXjY|p_Z|x|p_[||p_\|I|p_]||p_^||p__||p_`||p_a||p_b||p_c||p_dd|p_ed|p_f||p_g||p_hd|p_id|p_jd|p_kd|p_ld|p_m|5|p_n|6|p_o|–|p_p|—|p_q|^|p_r|_|p_s|/|p_tt|pdØƒ�rZ|pj�rZ|pj|p_t|0|p_u|`|p_v|a|p_wd|p_xd|p_yd|p_z|b|p_{|“|p_|||p_}|?|p_~|>|p_|=|p_€d|p_�|˜|p_‚|™|p_ƒ|i|p_„|e|p_…d|p_†d|p_‡|f|p_ˆ|%|p_‰|&|p_Š|'|p_‹|3|p_Œ|4|p_�|!|p_Ž|K|p_�|+|p_�|(|p_‘|)|p_’|*|p_“|.|p_”|Š|p_•||p_–||p_—||p_˜|"|p_™|#|p_š|$|p_›|g|p_œ|h|p_�||p_ž||p_Ÿ|pj:|sj$j%v �r‚|pjt�s‚d%|p_:|pj:|p_t ƒ }š|pj9|š_9|pj:|š_:d|š_d|š_d|š_|pj;|š_;|pj<|š_<|pj=|š_=|pj>|š_>|pj?|š_?|pj@|š_@|pjA|š_A|pjB|š_B|pjC|š_C|pjD|š_D|pjE|š_E|pjF|š_F|pjG|š_G|pjH|š_H|pjI|š_I|pjJ|š_J|pjK|š_K|pjL|š_L|pjM|š_M|pjN|š_N|pjO|š_O|pjP|š_P|pjQ|š_Q|pjR|š_R|pjS|š_S|pjt|š_t|pju|š_u|pj,|š_,|pjT|š_T|pjU|š_U|pjV|š_V|pjW|š_W|pjZ|š_Z|pj[|š_[|pj\|š_\|pj]|š_]|pj^|š_^|pj_|š__|pj`|š_`|pja|š_a|pjb|š_b|pjc|š_c|pjd|š_d|pje|š_e|pjf|š_f|pjg|š_g|pjh|š_h|pji|š_i|pjj|š_¡|pjk|š_¢|pjl|š_£|pjm|š_m|pjn|š_n|pjo|š_o|pjp|š_p|pjq|š_q|pjr|š_¤|pjs|š_¥|pjv|š_v|pjw|š_w|pjx|š_x|pjy|š_y|pjz|š_z|pj{|š_{|pj||š_||pj}|š_}|pj~|š_~|pj|š_|pj€|š_€|pj�|š_�|pj‚|š_‚|pjƒ|š_ƒ|pj„|š_¦|pj…|š_…|pj†|š_†|pj‡|š_§|pjˆ|š_ˆ|pj‰|š_‰|pjŠ|š_Š|pj‹|š_‹|pjŒ|š_Œ|pj�|š_�|pjŽ|š_Ž|pj�|š_�|pj�|š_�|pj‘|š_‘|pj’|š_’|pj“|š_“|pj”|š_”|pj•|š_•|pj–|š_–|pj—|š_—|pj˜|š_˜|pj™|š_™|pjš|š_¨|pj›|š_›|pjœ|š_œ|pj�|š_�|pjž|š_ž|pjŸ|š_Ÿd|š_©tªtƒ�| |o «¡ d  (dÙ¡d }›|› (|lj¬¡d  }›|› (dÚ¡d }œ|œ (d_¡d }�dÛ|œ (dÜ¡d   }ž|� (dÝ¡d |ž }Ÿ|Ÿ|š_­W d  ƒ n1 �"s\0    Y  t|pdÞƒ�"r||pj®|š_®nd|š_®d} |t ¯¡ }¡| �#r\|jj°j±}¢|jj²j³}£|jj²j´}¤|o «¡ d  (dÙ¡d }›|› (|lj¬¡d  }›|› (dÚ¡d  µdßdà¡} | dá7 } dâ|  }¥|¡t |¥ƒ }¦dã}§dã}¨|¦dk�#r:t7|¦dä ƒ}©|©då }§|¦|© }ª|ªdå }¨|  -dæ¡�#s\tdç|£|§|¥|¨|¤f ƒ ||�#rºddèl
m¶}« ddél
m·}¬ ddêl
m¸}­ |« ¹|sjXjY|lj¬ ¡ |« º¡  |¬ »¡  |pj˜�#sº|­ ¼¡  |n ¡ }®|š ½¡  d}¯d}°dë|vv �#rât¾ƒ  �züz|šV  W �nV t�'yH }± �z:d|š_©|±}²d}¯| �$s |}�&rÐ| �&sÐt|±ƒ W Y d}±~±W |šj©�$rTdì|vv �$rTd|p_n.dí|vv �$s|dî|vv �$s|dï|vv �$s|dð|vv �$r‚d|p_¿z|š À¡  W nN t�$yÜ }³ z4|³}°t|o Á¡  Â¡ ƒ | �$rÈ|¯�$sÈtdñƒ W Y d}³~³n
d}³~³0 0 t|pdòƒ�%rB|pjÃ�%rBt|pjÃdóƒ�%rBz|pjÃ Ä¡  d|p_Ãd|p_®W n& tÅ�%y.   Y n t�%y@   Y n0 |n ¡ }´|´|® }µ|u}p| �%rbd|p_| �&r dô}¶| �%r„|¯�%s„dõ}¶|jj°jÆ}¢dö| |¶|µf }·|¡t |·ƒ }¦d÷|£|¢| |¶|¤|¢|µf }·dã}§dã}¨|¦dk�%rêt7|¦dä ƒ}©|©då }§|¦|© }ª|ªdå }¨| �%rþ|¯�%sþt|¸ƒ |  -dæ¡�&s tdç|¢|§|·|¨|¤f ƒ |�&rÄt|šdøƒ�&rÄddlÇ}¹|šjÈ É¡ D ]~}ºt|ºdùƒ�&rD|ºjÊ�&rDt|ºjÊdúƒ�&rD|¹ Ë|ºjÊjÌ¡ dûdü„ |ºjÊ Í¡ D ƒ}»|» )|ºjÊjÎjÏ Ð¡ ¡ |ºjÊjÌ Ñ|¹jÒ|»Ž ¡ |ºjÊjÌ Ó¡  �&qD|k Ô¡  dS | �&sÚ‚ nZ|o Á¡  Â¡ }¸z2|¸ (dÚ¡d$  (dß¡d }¼|¼ (|lj¬¡d  }�|�|š_ÕW n t�'y2   d|š_ÕY n0 W Y d}±~±n
d}±~±0 0 W |šj©�'rfdì|vv �'rfd|p_n.dí|vv �'sŽdî|vv �'sŽdï|vv �'sŽdð|vv �'r”d|p_¿z|š À¡  W nN t�'yî }³ z4|³}°t|o Á¡  Â¡ ƒ | �'rÚ|¯�'sÚtdñƒ W Y d}³~³n
d}³~³0 0 t|pdòƒ�(rT|pjÃ�(rTt|pjÃdóƒ�(rTz|pjÃ Ä¡  d|p_Ãd|p_®W n& tÅ�(y@   Y n t�(yR   Y n0 |n ¡ }´|´|® }µ|u}p| �(rtd|p_| �)r2dô}¶| �(r–|¯�(s–dõ}¶|jj°jÆ}¢dö| |¶|µf }·|¡t |·ƒ }¦d÷|£|¢| |¶|¤|¢|µf }·dã}§dã}¨|¦dk�(rüt7|¦dä ƒ}©|©då }§|¦|© }ª|ªdå }¨| �)r|¯�)st|¸ƒ |  -dæ¡�)s2tdç|¢|§|·|¨|¤f ƒ |�)rÖt|šdøƒ�)rÖddlÇ}¹|šjÈ É¡ D ]~}ºt|ºdùƒ�)rV|ºjÊ�)rVt|ºjÊdúƒ�)rV|¹ Ë|ºjÊjÌ¡ dûdü„ |ºjÊ Í¡ D ƒ}»|» )|ºjÊjÎjÏ Ð¡ ¡ |ºjÊjÌ Ñ|¹jÒ|»Ž ¡ |ºjÊjÌ Ó¡  �)qV|k Ô¡  �n”|šj©�)rüdì|vv �)rüd|p_n.dí|vv �*s$dî|vv �*s$dï|vv �*s$dð|vv �*r*d|p_¿z|š À¡  W nN t�*y„ }³ z4|³}°t|o Á¡  Â¡ ƒ | �*rp|¯�*sptdñƒ W Y d}³~³n
d}³~³0 0 t|pdòƒ�*rê|pjÃ�*rêt|pjÃdóƒ�*rêz|pjÃ Ä¡  d|p_Ãd|p_®W n& tÅ�*yÖ   Y n t�*yè   Y n0 |n ¡ }´|´|® }µ|u}p| �+r
d|p_| �+rÈdô}¶| �+r,|¯�+s,dõ}¶|jj°jÆ}¢dö| |¶|µf }·|¡t |·ƒ }¦d÷|£|¢| |¶|¤|¢|µf }·dã}§dã}¨|¦dk�+r’t7|¦dä ƒ}©|©då }§|¦|© }ª|ªdå }¨| �+r¦|¯�+s¦t|¸ƒ |  -dæ¡�+sÈtdç|¢|§|·|¨|¤f ƒ |�,rlt|šdøƒ�,rlddlÇ}¹|šjÈ É¡ D ]~}ºt|ºdùƒ�+rì|ºjÊ�+rìt|ºjÊdúƒ�+rì|¹ Ë|ºjÊjÌ¡ dûdü„ |ºjÊ Í¡ D ƒ}»|» )|ºjÊjÎjÏ Ð¡ ¡ |ºjÊjÌ Ñ|¹jÒ|»Ž ¡ |ºjÊjÌ Ó¡  �+qì|k Ô¡  0 | �,r”| �,r”|¯�,s”|�,r”|²‚n|°�,r°| �,r¬|¯�,r°|�,r°|°‚dS )ýa  
    * SeleniumBase as a Python Context Manager *

    Example:
    --------
    .. code-block:: python
        from seleniumbase import SB

        with SB(uc=True, test=True) as sb:
            url = "https://google.com/ncr"
            sb.activate_cdp_mode(url)
            sb.click_if_visible('button:contains("Accept all")')
            sb.type('[name="q"]', "SeleniumBase GitHub page")
            sb.click('[value="Google Search"]')
            sb.sleep(2)
            print(sb.get_page_title())

    Optional Parameters:
    --------------------
    test (bool):  Test Mode: Output, Logging, Continue on failure unless "rtf".
    rtf (bool):  Shortcut / Duplicate of "raise_test_failure".
    raise_test_failure (bool):  If "test" mode, raise Exception on 1st failure.
    browser (str):  Choose from "chrome", "edge", "firefox", or "safari".
    headless (bool):  Use the default headless mode for Chromium and Firefox.
    headless1 (bool):  Use Chromium's old headless mode. (Fast, but limited)
    headless2 (bool):  Use Chromium's new headless mode. (Has more features)
    locale_code (str):  Set the Language Locale Code for the web browser.
    protocol (str):  The Selenium Grid protocol: "http" or "https".
    servername (str):  The Selenium Grid server/IP used for tests.
    port (int):  The Selenium Grid port used by the test server.
    proxy (str):  Use proxy. Format: "SERVER:PORT" or "USER:PASS@SERVER:PORT".
    proxy_bypass_list (str):  Skip proxy when using the listed domains.
    proxy_pac_url (str):  Use PAC file. (Format: URL or USERNAME:PASSWORD@URL)
    multi_proxy (bool):  # Allow multiple proxies with auth when multithreaded.
    agent (str):  Modify the web browser's User-Agent string.
    cap_file (str):  The desired capabilities to use with a Selenium Grid.
    cap_string (str):  The desired capabilities to use with a Selenium Grid.
    recorder_ext (bool):  Enables the SeleniumBase Recorder Chromium extension.
    disable_cookies (bool):  Disable Cookies on websites. (Pages might break!)
    disable_js (bool):  Disable JavaScript on websites. (Pages might break!)
    disable_csp (bool):  Disable the Content Security Policy of websites.
    enable_ws (bool):  Enable Web Security on Chromium-based browsers.
    enable_sync (bool):  Enable "Chrome Sync" on websites.
    use_auto_ext (bool):  Use Chrome's automation extension.
    undetectable (bool):  Use undetected-chromedriver to evade bot-detection.
    uc_cdp_events (bool):  Capture CDP events in undetected-chromedriver mode.
    uc_subprocess (bool):  Use undetected-chromedriver as a subprocess.
    log_cdp_events (bool):  Capture {"performance": "ALL", "browser": "ALL"}
    incognito (bool):  Enable Chromium's Incognito mode.
    guest_mode (bool):  Enable Chromium's Guest mode.
    dark_mode (bool):  Enable Chromium's Dark mode.
    devtools (bool):  Open Chromium's DevTools when the browser opens.
    remote_debug (bool):  Enable Chrome's Debugger on "http://localhost:9222".
    enable_3d_apis (bool):  Enable WebGL and 3D APIs.
    swiftshader (bool):  Chrome: --use-gl=angle / --use-angle=swiftshader-webgl
    ad_block_on (bool):  Block some types of display ads from loading.
    host_resolver_rules (str):  Set host-resolver-rules, comma-separated.
    block_images (bool):  Block images from loading during tests.
    do_not_track (bool):  Tell websites that you don't want to be tracked.
    chromium_arg (str):  "ARG=N,ARG2" (Set Chromium args, ","-separated.)
    firefox_arg (str):  "ARG=N,ARG2" (Set Firefox args, comma-separated.)
    firefox_pref (str):  SET (Set Firefox PREFERENCE:VALUE set, ","-separated)
    user_data_dir (str):  Set the Chrome user data directory to use.
    extension_zip (str):  Load a Chrome Extension .zip|.crx, comma-separated.
    extension_dir (str):  Load a Chrome Extension directory, comma-separated.
    disable_features (str):  "F1,F2" (Disable Chrome features, ","-separated.)
    binary_location (str):  Set path of the Chromium browser binary to use.
    driver_version (str):  Set the chromedriver or uc_driver version to use.
    skip_js_waits (bool):  Skip JS Waits (readyState=="complete" and Angular).
    wait_for_angularjs (bool):  Wait for AngularJS to load after some actions.
    use_wire (bool):  Use selenium-wire's webdriver over selenium webdriver.
    external_pdf (bool):  Set Chrome "plugins.always_open_pdf_externally":True.
    window_position (x,y):  Set the browser's starting window position: "X,Y"
    window_size (w,h):  Set the browser's starting window size: "Width,Height"
    is_mobile (bool):  Use the mobile device emulator while running tests.
    mobile (bool):  Shortcut / Duplicate of "is_mobile".
    device_metrics (w,h,pr):  Mobile metrics: "CSSWidth,CSSHeight,PixelRatio"
    xvfb (bool):  Run tests using the Xvfb virtual display server on Linux OS.
    xvfb_metrics (w,h):  Set Xvfb display size on Linux: "Width,Height".
    start_page (str):  The starting URL for the web browser when tests begin.
    rec_print (bool):  If Recorder is enabled, prints output after tests end.
    rec_behave (bool):  Like Recorder Mode, but also generates behave-gherkin.
    record_sleep (bool):  If Recorder enabled, also records self.sleep calls.
    data (str):  Extra test data. Access with "self.data" in tests.
    var1 (str):  Extra test data. Access with "self.var1" in tests.
    var2 (str):  Extra test data. Access with "self.var2" in tests.
    var3 (str):  Extra test data. Access with "self.var3" in tests.
    variables (dict):  Extra test data. Access with "self.variables".
    account (str):  Set account. Access with "self.account" in tests.
    environment (str):  Set the test env. Access with "self.env" in tests.
    headed (bool):  Run tests in headed/GUI mode on Linux, where not default.
    maximize (bool):  Start tests with the browser window maximized.
    disable_ws (bool):  Reverse of "enable_ws". (None and False are different)
    disable_beforeunload (bool):  Disable the "beforeunload" event on Chromium.
    settings_file (str):  A file for overriding default SeleniumBase settings.
    position (x,y):  Shortcut / Duplicate of "window_position".
    size (w,h):  Shortcut / Duplicate of "window_size".
    uc (bool):  Shortcut / Duplicate of "undetectable".
    undetected (bool):  Shortcut / Duplicate of "undetectable".
    uc_cdp (bool):  Shortcut / Duplicate of "uc_cdp_events".
    uc_sub (bool):  Shortcut / Duplicate of "uc_subprocess".
    locale (str):  Shortcut / Duplicate of "locale_code".
    log_cdp (bool):  Shortcut / Duplicate of "log_cdp_events".
    ad_block (bool):  Shortcut / Duplicate of "ad_block_on".
    server (str):  Shortcut / Duplicate of "servername".
    guest (bool):  Shortcut / Duplicate of "guest_mode".
    wire (bool):  Shortcut / Duplicate of "use_wire".
    pls (str):  Shortcut / Duplicate of "page_load_strategy".
    sjw (bool):  Shortcut / Duplicate of "skip_js_waits".
    wfa (bool):  Shortcut / Duplicate of "wait_for_angularjs".
    save_screenshot (bool):  Save a screenshot at the end of each test.
    no_screenshot (bool):  No screenshots saved unless tests directly ask it.
    page_load_strategy (str):  Set Chrome PLS to "normal", "eager", or "none".
    timeout_multiplier (float):  Multiplies the default timeout values.
    js_checking_on (bool):  Check for JavaScript errors after page loads.
    slow (bool):  Slow down the automation. Faster than using Demo Mode.
    demo (bool):  Slow down and visually see test actions as they occur.
    demo_sleep (float):  SECONDS (Set wait time after Slow & Demo Mode actions)
    message_duration (float):  SECONDS (The time length for Messenger alerts.)
    highlights (int):  Number of highlight animations for Demo Mode actions.
    interval (float):  SECONDS (Autoplay interval for SB Slides & Tour steps.)
    time_limit (float):  SECONDS (Safely fail tests that exceed the time limit)
    r   N)Úconfig)Úsettings)Údetect_b_ver)Ú	constants)Úshared_utilsFú z--coz--collect-onlyÚall_scriptsÚ	is_behaveÚ	is_pytestÚis_nosetestTz--testÚ_context_of_runnerz4Skipping `SB()` script. (Use `python`, not `pytest`)z	
  *** %s)Zallow_module_levelzt
  SB Manager script was triggered by nosetest collection!
  (Prevent that by using: ``if __name__ == "__main__":``)Ú_has_older_contextz--raise-test-failurez--raise_test_failurez--rtfz-xz--exitfirsté   )ú--binary-locationz--binary_locationz--blú/éÿÿÿÿú\z--browser=chromez--browser chromeé   Úchromez--browser=edgez--browser edgeÚedgez--browser=firefoxz--browser firefoxZfirefoxz--browser=safariz--browser safariZsafariz--browser=iez--browser ieZiez--browser=remotez--browser remoteÚremotez--browser=operaz--browser operaÚoperaz--browser=bravez--browser braveÚbravez--browser=cometz--browser cometÚcometz--browser=atlasz--browser atlasÚatlasz--chromez--edgez	--firefoxz--iez--safariz--operaz--bravez--cometz--atlasz(

  TOO MANY browser types were entered!z
  There were %s found:
  >  %sz, z'
  ONLY ONE default browser is allowed!z(
  Select a single browser & try again!
zABrowser: {%s} is not a valid browser option. Valid options = {%s}z
--headlessz--headless1z--headless2ÚhttpÚ	localhostZ4444Útestz--incognitoz--guestz--darkz
--devtoolsz--mobilez--proxyz--proxy=z--proxy ú"ú'z--chromium-argz--chromium-arg=ú-z--disable-featuresz--disable-features=z--window-positionz
--positionz--window-position=z--window-sizez--window-size=z--xvfb-metricsz--xvfb-metrics=z--agentz--agent=r   z--binary-location=z--bl=Z
_chromium_ÚcftÚchsz--use-chromiumz--cftz--chsz
--recorderz--recordz--recz--rec-printz--rec-behavez--rec-sleepz--record-sleepz--xvfbz--undetectablez--undetectedz--ucz--uc-cdp-eventsz--uc_cdp_eventsz--uc-cdpz--uc-subprocessz--uc_subprocessz--uc-subz--uc_cdp)r   r   r   r   r    z´
  Undetected-Chromedriver Mode ONLY supports Chromium browsers!
  ("uc=True" / "undetectable=True" / "--uc")
  (Your browser choice was: "%s".)
  (Will use "%s" without UC Mode.)
z--guiz--headed)r   r   r   r   r   r    z--proxy-driverz--proxy_driverÚ{Ú}z^
Expecting a Python dictionary for "variables"!
Eg. --variables="{'KEY1':'VALUE', 'KEY2':123}"z--disable-cspz--no-cspz--dcspz--disable-web-securityz--disable-wsz--dwsz--log-cdp-eventsz--log_cdp_eventsz	--log-cdpz	--log_cdpz--use-auto-extz--disable-cookiesz--disable-jsz
--maximizez--pls=z
--pls=nonez--pls="none"Únonez--pls=eagerz--pls="eager"Úeagerz--pls=normalz--pls="normal"Únormal)r-   r,   r+   z8page_load_strategy must be "normal", "eager", or "none"!z--sjwz--skip_js_waitsz--skip-js-waitsz--wfaz--wait_for_angularjsz--wait-for-angularjsz--screenshotz--save-screenshotz--ssz--no-screenshotz--nsz
--check-jsz--slowz--demoz--block-imagesz--block_imagesz--do-not-trackz--do_not_trackz--wirez--external-pdfz--external_pdfz--remote-debugz--remote_debugz--enable-3d-apisz--enable_3d_apisz--swiftshaderz
--locale="z	--locale=z--locale-code="z--locale-code=z
--ad-blockz
--ad_blockz--host-resolver-rules="z--host_resolver_rules="z--host_resolver_rules=z--driver-versionz--driver-version=z--driver_versionz--driver_version=z "highlights" must be an integer!z"interval" must be numeric!z"time_limit" must be numeric!Ú_cdp_bin_loczwith SB(z, in z.line_z, line Ú.Úheadless_activez", line ú:z:SBz=== {%s} starts ===Ú é   ú=z	runpy.py:z
%s%s%s%s%s)Ú
log_helper)Údownload_helper)Úproxy_helperz--tracez--pdbz--final-debugz--final-tracez--fdebugz--ftracez5********** ERROR: The test AND the tearDown() FAILED!Ú_virtual_displayÚstopZpassedÚfailedz=== {%s} %s in %.2fs ===z === %s%s{%s} %s%s%s in %.2fs ===Ú_drivers_browser_mapÚcdpÚloopc                 S   s   g | ]}|  ¡ ‘qS © )Úaclose)Ú.0Útabr>   r>   úEE:\soccer\ml_env\Lib\site-packages\seleniumbase/plugins/sb_manager.pyÚ
<listcomp>á  ó    zSB.<locals>.<listcomp>)ÖÚcoloramaÚgcÚosÚsysÚtimeÚ	tracebackÚseleniumbaser   Zseleniumbase.configr	   Zseleniumbase.corer
   Zseleniumbase.fixturesr   r   Z_do_sb_post_mortemÚargvÚjoinÚhasattrr   r   r   r   ÚpytestÚprintÚskipÚ	Exceptionr   r   Z_browser_shortcutZ_cdp_browserr.   ÚlenÚstrÚpathÚexistsZChromiumSubsZchromium_subsZget_binary_locationÚlowerÚsplitÚappendZValidBrowsersÚvalid_browsersZmobile_emulatorÚ
startswithÚendswithZis_linuxZproxy_driverÚ
isinstanceÚastÚliteral_evalÚdictZSKIP_JS_WAITSZWAIT_FOR_ANGULARJSÚintÚfloatÚwith_testing_baseÚbrowserZis_context_managerÚheadlessÚ	headless1Ú	headless2ÚheadedÚxvfbÚxvfb_metricsÚ
start_pageÚlocale_codeÚprotocolÚ
servernameÚportÚdataÚvar1Úvar2Úvar3Ú	variablesÚaccountÚenvironmentÚenvÚ
user_agentÚ	incognitoÚ
guest_modeÚ	dark_modeÚdevtoolsÚdevice_metricsÚextension_zipÚextension_dirZdatabase_envÚLogsZLATESTÚlog_pathÚarchive_logsÚdisable_cspÚ
disable_wsÚ	enable_wsÚenable_syncÚuse_auto_extÚundetectableÚuc_cdp_eventsÚuc_subprocessÚlog_cdp_eventsZ
no_sandboxZdisable_gpuÚdisable_cookiesÚ
disable_jsZ_multithreadedZreuse_sessionZcrumbsZfinal_debugZvisual_baselineÚwindow_positionÚwindow_sizeÚmaximize_optionÚ_disable_beforeunloadÚsave_screenshotÚno_screenshotÚbinary_locationÚdriver_versionÚpage_load_strategyÚtimeout_multiplierZpytest_html_reportZwith_db_reportingZwith_s3_loggingÚjs_checking_onÚrecorder_modeÚrecorder_extÚrecord_sleepÚ
rec_behaveÚ	rec_printZ	report_onÚ	slow_modeÚ	demo_modeZ_time_limitÚ
demo_sleepZ	dashboardZ_dashboard_initializedÚmessage_durationÚhost_resolver_rulesÚblock_imagesÚdo_not_trackÚuse_wireÚexternal_pdfÚremote_debugÚsettings_fileÚuser_data_dirÚchromium_argÚfirefox_argÚfirefox_prefÚdisable_featuresÚproxy_stringÚproxy_bypass_listÚproxy_pac_urlÚmulti_proxyÚenable_3d_apisÚswiftshaderÚad_block_onÚ
highlightsÚintervalÚcap_fileÚ
cap_stringr   Z_reuse_sessionZ_crumbsZ_final_debugZsave_screenshot_after_testZno_screenshot_after_testÚ
time_limitZ_dash_initializedZ_swiftshaderZ_has_failurer   Úformat_stackÚsepZ_manager_saved_idr0   Zget_terminal_widthZForeZGREENÚStyleZBRIGHTZ	RESET_ALLÚreplacer5   r6   r7   Zlog_folder_setupZclear_empty_logsZreset_downloads_folderZremove_proxy_zip_if_presentZsetUpÚ
breakpointZ_do_sb_final_traceZtearDownÚ
format_excÚstripr8   r9   ÚAttributeErrorZREDÚasyncior;   Úkeysr<   Zset_event_loopr=   Zget_tabsÚdriverÚ
connectionr?   Zrun_until_completeZgatherÚcloseZcollectZcm_filename)½r#   ZrtfZraise_test_failurerd   re   rf   rg   rl   rm   rn   ro   Úproxyr¯   r°   r±   Zagentr·   r¸   rš   rŒ   r�   rƒ   r…   r†   r‡   rˆ   r‰   rŠ   r‹   ry   rz   r{   r|   r§   r²   r³   r´   r¢   r£   r¤   rª   r«   r¬   r©   r~   r   r­   r”   r•   Zskip_js_waitsZwait_for_angularjsr¥   r¦   rŽ   r�   Z	is_mobileZmobiler}   ri   rj   rk   r�   rœ   r›   rp   rq   rr   rs   rt   ru   rv   rh   Zmaximizer„   Zdisable_beforeunloadr¨   ÚpositionÚsizeZucZ
undetectedZuc_cdpZuc_subÚlocaleZlog_cdpZad_blockÚserverZguestZwireZplsZsjwZwfar'   r(   Zuse_chromiumr’   r“   r–   r—   r˜   ZslowÚdemor    r¡   rµ   r¶   r¹   rE   rF   rG   rH   rI   rJ   Z	sb_configr	   r
   r   r   Zsb_config_backupZsys_argvZarg_joinr‚   Zexisting_runnerZcollect_onlyr   Zdo_log_folder_setupZ
inner_testrO   Úmsgrc   Zbrowser_changesZbrowser_setZbrowser_textZbrowser_listZbin_loc_in_optionsÚargZbin_locÚmessagerZ   r®   Zc_aÚcountZd_fZw_pZw_sZx_mrx   Zfound_blr™   r^   Z	bad_inputr�   r‘   rž   rŸ   ÚsbZ
stack_baseZ	test_baseÚfilenameÚ
methodnameZ
context_idZ	test_nameÚterminal_widthÚc1Úb1ÚcrÚ
start_textZremaining_spacesZ
left_spaceZright_spaceÚleft_spacesÚright_spacesr5   r6   r7   Ú
start_timeZtest_passedZteardown_exceptionÚeÚ	exceptionZt_eZend_timeZrun_timeÚresultZend_textZthe_tracebackrÂ   rÄ   ÚtasksZp2r>   r>   rB   ÚSB    s     i
ÿÿþþýýÿÿþýÿþýüûúù	ÿþý
ÿ
þý
"



























þ

ÿÿ




















ÿþþ
ÿ
þýÿþý







ÿþýüûúù	ÿþýüûúùø	÷ÿþýÿþýüÿþýÿ
ÿþýüû
 ÿþ

ÿ
ÿþýÿÿýüûÿÿþþýýÿþýü






ÿ

ÿþý
ÿþý
ÿþý














ÿ
ÿ
ÿ
ÿ


ÿ
ÿ




&


ÿþýüÿþ
ý

ÿÿÿÿ
ÿÿÿþ
ý¨
$ÿþýüÿþ
ý

ÿÿÿÿ
ÿÿÿþ
ýµÿþýüÿþ
ý

ÿÿÿÿ
ÿÿÿþ
ý
ÿýüürà   )jNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)
Ú__doc__Ú
contextlibr   r   Útypingr   r   rK   r   rà   r>   r>   r>   rB   Ú<module>   sâ                                                                                                             –k•