a
    7ñ»jà1  ã                   @   sP   d Z ddlZddlZddlZddlZd
dd„Zdd„ Zdd„ Zed	krLeƒ  dS )aÈ  
** mkrec / record / codegen **

Creates a new SeleniumBase test file using the Recorder.

Usage:
      seleniumbase mkrec [FILE.py] [OPTIONS]
             sbase mkrec [FILE.py] [OPTIONS]
     seleniumbase record [FILE.py] [OPTIONS]
            sbase record [FILE.py] [OPTIONS]
    seleniumbase codegen [FILE.py] [OPTIONS]
           sbase codegen [FILE.py] [OPTIONS]

Examples:
    sbase mkrec new_test.py
    sbase mkrec new_test.py --url=seleniumbase.io
    sbase codegen new_test.py
    sbase codegen new_test.py --url=wikipedia.org

Options:
    --url=URL  (Sets the initial start page URL.)
    --edge  (Use Edge browser instead of Chrome.)
    --gui / --headed  (Use headed mode on Linux.)
    --uc / --undetected  (Use undetectable mode.)
    --overwrite  (Overwrite file when it exists.)
    --behave  (Also output Behave/Gherkin files.)

Output:
    Creates a new SeleniumBase test using the Recorder.
    If the filename already exists, an error is raised.
é    Nc                 C   sÈ   d}|d7 }|d7 }|d7 }|d7 }|d7 }|d7 }|d7 }|d	7 }|d
7 }|d7 }|d7 }|d7 }|d7 }|d7 }|d7 }|d7 }| s–t d| ƒ‚n.| dkr´td| ƒ t ¡  nt d|| f ƒ‚d S )Nz"  ** mkrec / record / codegen **

z	  Usage:
z"     seleniumbase mkrec [FILE.py]
z"     OR:    sbase mkrec [FILE.py]
z  Examples:
z     sbase mkrec new_test.py
z1     sbase mkrec new_test.py --url=wikipedia.org
z  Options:
z3     --url=URL  (Sets the initial start page URL.)
z3     --edge  (Use Edge browser instead of Chrome.)
z3     --gui / --headed  (Use headed mode on Linux.)
z3     --uc / --undetected  (Use undetectable mode.)
z3     --overwrite  (Overwrite file when it exists.)
z3     --behave  (Also output Behave/Gherkin files.)
z
  Output:
z9     Creates a new SeleniumBase test using the Recorder.
z9     If the filename already exists, an error is raised.
zINVALID RUN COMMAND!

%sÚhelpz
%szINVALID RUN COMMAND!

%s
%s
)Ú	ExceptionÚprintÚsysÚexit)ÚmsgÚexp© r	   úKE:\soccer\ml_env\Lib\site-packages\seleniumbase/console_scripts/sb_mkrec.pyÚinvalid_run_command&   s.    
r   c                 C   s„   d}d}d}d}d}d}| rtt jjt jj }t jjt jj }t jjt jj }t jjt jj }t jjt jj	 }t j
j}||||||fS )NÚ )ÚcoloramaZForeZBLUEZBackZLIGHTCYAN_EXZREDZLIGHTYELLOW_EXZLIGHTRED_EXZBLACKZMAGENTAÚStyleZ	RESET_ALL)Ú
use_colorsÚc0Úc1Úc2Úc5Úc7Úcrr	   r	   r
   Ú
set_colorsA   s    r   c            )      C   sÊ  d} d }d }d}d}d}d}d}d}d}	d}
d }d}d}d}d}t j}d|v rRd}dt jv r`d}t|ƒ\}}}}}}t jdd … }|d }|dksš|d	kr¤td
ƒ nl| d¡s´d}n\d|v sÌtt|ƒƒdk rÒd}n>| 	d¡râd}n.dt|ƒv südt|ƒv �rd}n|dk�rd}|�r.|d | | }t|ƒ t
 ¡ }t
j ||¡}dd |¡ ¡ v �rpt
j |¡�rpt
 |¡ t
j |¡�ržd| }|d | | }t|ƒ t|ƒdk�r„|dd … }|D �]Ä}| ¡ dk�sÞ| ¡ d	k�ræd} �q¼| ¡ dk�rüd}�q¼| ¡ dk�rd}�q¼| ¡ dk�r(d}�q¼| ¡ dk�r>d}�q¼| ¡ dk�rTd}�q¼| ¡ d k�rjd}�q¼| ¡ d!k�r€d}
�q¼| ¡ d"v �r dt jv �r€d}nà| ¡ d#v �r´d}	nÌ| ¡ d$v �rÈd}n¸| ¡  	d%¡�rê|td%ƒd … }n–| ¡ d&k�rþd}n‚|�r|}d}nr| ¡ dk�rnbd'| }| d(d)| d ¡}| d*d| d+ ¡}| d)|d) | ¡}| d+|d+ | ¡}d}  �q„�q¼| �r’t|ƒ g }| d,¡ | d-¡ | d-¡ | d.¡ | d/¡ |	�rF| d0¡ |�r<| 	d1¡�s| 	d2¡�s| 	d3¡�r<|}d4|v�rd5| }nd6|v�r,d7| }| d8| ¡ n
| d9¡ | d:¡ | d;¡ | d<¡ | d=¡ | d-¡ |
�rºd>}g } |  d,¡ |  d-¡ |  d-¡ |  d.¡ |  d/¡ |  d:¡ |  d?¡ |  d@| ¡ |  dA¡ |  dB¡ |  dC¡ |  dD¡ |  dE¡ |  dF¡ |  dG¡ |  dH¡ |  dI¡ |  dJ¡ |  dK¡ |  dL¡ |  dM¡ |  dN¡ |  dO¡ |  dK¡ |  dP¡ |  dK¡ |  dQ¡ |  dR¡ |  dS¡ |  d-¡ | }t|dTdUdV�}!|! dW |¡¡ |! ¡  dX| dY | d | | d- | dX }"t|"ƒ d }#|�rJ|	�rX| 	d1¡�sD| 	d2¡�sD| 	d3¡�rX|
�sXdZ||f }#n@d[|||f }#d4|v�r€d\|||f }#nd6|v�r˜d]|||f }#|�r¨|#d^7 }#nN|�r¸|#d_7 }#n>|�rÈ|#d`7 }#n.|�rØ|#da7 }#n|�rè|#db7 }#n|�rö|#dc7 }#|�r|#dd7 }#|	�r|#de7 }#|�r |#df7 }#t|#ƒ t
 |#¡ t
j |¡�rJt
 |¡ |d dg… dh }$t
j |di¡}%t
j |%|$¡}&dj| }'d|&v�rœt
 dk|'|&f ¡ n0d4|&v�rºt
 dl|'|&f ¡ nt
 dm|'|&f ¡ t |&|¡ dX| dn | do | | | dX }"t|"ƒ |�rÆ|d dg… dp }$t
j |di¡}%t
j |%dq¡}(t
j |(|$¡}&d|&v�rbt
 dk|'|&f ¡ n0d4|&v�r€t
 dl|'|&f ¡ nt
 dm|'|&f ¡ dX| dn | dr | t
j |&¡ | dX }"t|"ƒ d S )sNFTú ÚpythonÚlinuxé   r   z-hz--helpr   z.pyzFile name must end with ".py"!Ú*é   zInvalid file name!ú-z File name cannot start with "-"!ú/ú\z.File must be created in the current directory!zabc.pyz7"abc.py" is a reserved Python module! Use another name!zERROR: z--overwritez+File "%s" already exists in this directory!é   z--edgez--operaz--bravez--cometz--atlasz--use-chromiumz--ee)z--guiz--headed)z--ucz--cdpz--undetectedz--undetectable)z--rec-behavez--behavez	--gherkinz--url=z--urlz
===> INVALID OPTION: >> %s <<
z>> z>>z <<z<<z!from seleniumbase import BaseCaser   zclass RecorderTest(BaseCase):z    def test_recording(self):z        if self.undetectable:zhttp:zhttps:zfile:ú"z"%s"ú'z'%s'zd            self.activate_cdp_mode(
                %s,
                recorder=True,
            )z            self.disconnect()z        if self.recorder_ext:z*            # When done recording actions,z*            # type "c", and press [Enter].z            breakpoint()z6>>> Use [SHIFT + ESC] in the browser to end recording!z            print(z                "\n\n%s\n"z            )z5            script = self._get_rec_shift_esc_script()z/            esc = "return document.sb_esc_end;"z$            start_time = self.time()z6            last_handles_num = self._get_num_handles()z!            for i in range(1200):z                try:z/                    self.execute_script(script)z9                    handles_num = self._get_num_handles()z'                    if handles_num < 1:z                        returnz9                    elif handles_num != last_handles_num:z1                        self.switch_to_window(-1)z6                        last_handles_num = handles_numz9                    if self.execute_script(esc) == "yes":z8                    elif self.time() - start_time > 600:z#                    self.sleep(0.5)z!                except Exception:z                    returnzw+zutf-8)ÚmodeÚencodingz
Ú
z* RECORDING initialized:z%s -m pytest %s --rec -q -sz$%s -m pytest %s --rec -q -s --url=%sz&%s -m pytest %s --rec -q -s --url="%s"z&%s -m pytest %s --rec -q -s --url='%s'z --edgez --operaz --bravez --cometz --atlasz --use-chromiumz --guiz --ucz --rec-behaveéýÿÿÿz_rec.pyZ
recordingsz%s -m z%sseleniumbase print %s -nz%sseleniumbase print "%s" -nz%sseleniumbase print '%s' -nz***z RECORDING COPIED to: z_rec.featureÚfeaturesz BEHAVE RECORDING at: )r   Ú
executableÚplatformr   Úargvr   ÚendswithÚlenÚstrÚ
startswithÚosÚgetcwdÚpathÚjoinÚlowerÚexistsÚremoveÚreplaceÚappendÚopenÚ
writelinesÚcloser   ÚsystemÚshutilÚcopyÚrelpath))Zhelp_meÚ	error_msgZinvalid_cmdZuse_edgeZ	use_operaZ	use_braveZ	use_cometZ	use_atlasZuse_chromiumZuse_ucZesc_endZ
start_pageZnext_is_urlr   Z	force_guiZ
rec_behaveZsys_executabler   r   r   r   r   r   Úcommand_argsÚ	file_nameÚdir_nameÚ	file_pathÚoptionsÚoptionÚdataZused_spr   Zd2ÚfileÚsuccessZrun_cmdZrecorded_filenameZrecordings_dirZrecorded_fileÚprefixZfeatures_dirr	   r	   r
   ÚmainR   s   




ÿ
þ








ÿýüû


ýÿ


































ÿÿÿÿÿÿÿýûúù	÷ÿ
ÿ
ÿ








ÿÿÿÿÿ

ÿ
ÿÿÿÿrJ   Ú__main__)N)	Ú__doc__r   r<   r/   r   r   r   rJ   Ú__name__r	   r	   r	   r
   Ú<module>   s   
  