a
    7ñ»j¥Ü ã                   @   sÊ   d Z ddlZddlZddlZdZdZej d¡s4dZdd„ Zd	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zd)dd„Zdd„ Zdd„ Zdd„ Zd*dd„Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zed(krÆe	ƒ  dS )+aB  
Converts a SeleniumBase Python file into one that uses the Page Object Pattern.

Usage:
    seleniumbase objectify [SELENIUMBASE_PYTHON_FILE].py
Output:
    A modified version of the file where the selectors
    have been replaced with variable names defined in
    "page_objects.py", supporting the Page Object Pattern.
é    Nzpage_objects.pyzfrom .page_objects import z__init__.pyzfrom page_objects import c                 C   sJ   | dkrt ƒ  n6| dkr tƒ  n&| dkr0tƒ  n| dkr@tƒ  nt ƒ  d S )NÚ	objectifyúinject-objectsúextract-objectsúrevert-objects)Úinvalid_objectify_run_commandÚ"invalid_inject_objects_run_commandÚ#invalid_extract_objects_run_commandÚ"invalid_revert_objects_run_command©Úshell_command© r   úOE:\soccer\ml_env\Lib\site-packages\seleniumbase/console_scripts/sb_objectify.pyÚinvalid_run_command   s    r   c                  C   st   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 } t d|  ƒ‚d S )Nz  ** objectify **

ú	  Usage:
z7     seleniumbase objectify [SELENIUMBASE_PYTHON_FILE]
ú  Options:
ú=     -c, --comments  (Add object selectors to the comments.)
ú3                     (Default: No added comments.)
ú
  Output:
z<     Converts a SeleniumBase Python file into one that uses
z:     the Page Object Pattern by converting page selectors
z=     into objects stored in a "page_objects.py" file that is
z;     autogenerated and stored in the same folder as tests.
z7     (seleniumbase "objectify" has the same outcome as
z8     combining "extract-objects" with "inject-objects")
úINVALID RUN COMMAND!

%s©Ú	Exception©Úexpr   r   r   r   "   s    r   c                  C   s\   d} | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d	7 } | d
7 } t d|  ƒ‚d S )Nz  ** inject-objects **

r   z<     seleniumbase inject-objects [SELENIUMBASE_PYTHON_FILE]
r   r   r   r   z;     Takes the page objects found in the "page_objects.py"
z:     file and uses those to replace matching selectors in
z,     the selected seleniumbase Python file.
r   r   r   r   r   r   r   3   s    r   c                  C   sD   d} | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } t d|  ƒ‚d S )	Nz  ** extract-objects **

r   z=     seleniumbase extract-objects [SELENIUMBASE_PYTHON_FILE]
r   z8     Creates page objects based on selectors found in a
z=     seleniumbase Python file and saves those objects to the
z=     "page_objects.py" file in the same folder as the tests.
r   r   r   r   r   r   r   A   s    r   c                  C   sd   d} | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d	7 } | d
7 } | d7 } t d|  ƒ‚d S )Nz  ** revert-objects **

r   z<     seleniumbase revert-objects [SELENIUMBASE_PYTHON_FILE]
r   z=     -c, --comments  (Keep existing comments for the lines.)
z6                     (Default: No comments are kept.)
r   z=     Reverts the changes made by "seleniumbase objectify" or
z6     "seleniumbase inject-objects" when run against a
z<     seleniumbase Python file. Objects will get replaced by
z5     selectors stored in the "page_objects.py" file.
r   r   r   r   r   r   r	   L   s    r	   c                 C   sø   |   d¡dkrz|   d¡|   d¡kr0|  dd¡} nJ|   d¡| dd…   d¡krzd| dd… vrzd| dd…  dd¡ d } n |   d¡dkrô|   d¡|   d¡krª|  dd¡} nJ|   d¡| dd…   d¡krôd| dd… vrôd| dd…  dd¡ d } n | S )Nz\"r   ú"é   éÿÿÿÿú'z\')ÚcountÚreplace©Úselectorr   r   r   Úremove_extra_slashes[   s    ÿÿr!   c                 C   s:  g }| rÄ|  d¡ |  d¡ |  ¡ D ]œ}|dkrvt| d ƒdkrÀ| d D ]}|  d|d |d f ¡ qH|  d¡ qÀq$|  d¡ |  d| ¡ | | D ]}|  d|d |d f ¡ q–|  d¡ q$n(|  d¡ |  d	¡ |  d
¡ |  d¡ t}t|ddd�}| d |¡¡ | ¡  | �s*td| ƒ ntd| ƒ d S )Nz'# PAGE OBJECTS FILE >>> (autogenerated)Ú ÚNoner   z%s = %sr   zclass %s(object):z    %s = %szclass Page(object):z    html = "html"úw+úutf-8©ÚmodeÚencodingz
z
>>> ["%s"] was created!z
>>> ["%s"] was updated!)	ÚappendÚkeysÚlenÚPAGE_OBJECTS_FILEÚopenÚ
writelinesÚjoinÚcloseÚprint)Úselector_list_dictÚdataÚkeyÚpairÚ	file_pathÚfiler   r   r   Úcreate_objects_fileq   s6    






r8   c                  C   s   t j t¡stƒ  i } ttddd��}| ¡ }W d   ƒ n1 sB0    Y  g }g }d}i }g ||< g |d< | d¡}|D �]X}| ¡ }t	 
d|¡}	|	rÈ|	 d¡}
d	|	 d
¡ }|}g ||< d| d| < t	 
d|¡}	|	�rÀ|	 d¡}
|	 d
¡}|	 d¡}t|ƒ}|| |< | |¡ | |¡ |
dk�r*d}t|ƒd
k�rz|d dk�rz|d dk�rzd|dd… v�rzd|dd…  d }d|v �s˜d|v �s˜d|v �r®|d dk�r®d| }||  ||f¡ d|  ¡ vrzd| d< qzt|d ƒdk�rö|d  d¡ |||fS )NÚrr%   r&   r#   ÚPageÚ
z'^(\s*)class\s+([\S]+)\((object|)\):\s*$r   ú%sé   Ú.zclass %sz^(\s*)(\S+)\s*=\s*([\S\s]+)\s*$é   r"   r   r   r   r   ú\[ú\]ú\.z
class Page)Úhtmlz"html")ÚosÚpathÚexistsr,   r8   r-   ÚreadÚsplitÚrstripÚreÚmatchÚgroupr!   r)   r+   r*   )Úpage_selectorsÚfÚall_codeÚ	var_namesÚ	selectorsZcurrent_classr2   Ú
code_linesÚliner3   Ú
whitespaceÚnamer    r   r   r   Úscan_objects_file“   s^    &









ÿÿ
rV   c                 C   sx   t | ƒdkrH| d dkrH| d dkrHd| dd… vrHd| dd…  d } d| v s`d| v s`d	| v rt| d d
krtd
|  } | S )Nr=   r   r   r   r   r   r@   rA   rB   r9   )r+   r   r   r   r   Úoptimize_selectorÊ   s    
ÿÿrW   c                 C   s@   d}t ddƒD ]$}d|t|ƒf }|| vr|  S qtdƒ‚d S )NZcss_r   iŸ† ú%s%sz(Out of range! (Selector name generation))ÚrangeÚstrr   )Zexisting_namesÚ	base_nameÚiÚnew_namer   r   r   Úget_next_var_nameÕ   s    
r^   Fc           "      C   sz:  g }g }g }| D �:]\}|  ¡ }d|v r2| |¡ q|sDt d|¡}nt d|¡}|�rÌ| d¡}	d| d¡ }
t|
ƒ}
| |
¡ d| d¡ }t|ƒ}| |¡ | d¡}d|	|
||f }|�rD|rÐd	|
|f }t|
ƒ}
t|ƒ}|
| ¡ v �rD|| ¡ v �rD||
 }|| }| | d
¡d ¡ | | d
¡d ¡ d|	|||f }|�rÀ|�sTd}|
}|}|| ¡ v �rÀ|| ¡ v �rÀ|| }|| }| | d
¡d ¡ | | d
¡d ¡ d|	|||f }| |¡ q|�sàt d|¡}nt d|¡}|�rj| d¡}	d| d¡ }
t|
ƒ}
| |
¡ d| d¡ }t|ƒ}| |¡ | d¡}d|	|
||f }|�râ|�rnd	|
|f }t|
ƒ}
t|ƒ}|
| ¡ v �râ|| ¡ v �râ||
 }|| }| | d
¡d ¡ | | d
¡d ¡ d|	|||f }|�r^|�sòd}|
}|}|| ¡ v �r^|| ¡ v �r^|| }|| }| | d
¡d ¡ | | d
¡d ¡ d|	|||f }| |¡ q|�s~t d|¡}nt d|¡}|�rž| d¡}	| d¡}d| d¡ }t|ƒ}| d¡}| |¡ | d¡}d|	||||f }|�rB|�rþd| }t|ƒ}|| ¡ v �rB|| }| | d
¡d ¡ d|	||||f }|�r’|�sRd}|}|| ¡ v �r’|| }| | d
¡d ¡ d|	||||f }| |¡ q|�s²t d|¡}nt d|¡}|�rÂ| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}d|	|||f }|�rh|�r&d| }t|ƒ}|| ¡ v �rh|| }| | d
¡d ¡ d|	|||f }|�r¶|�sxd}|}|| ¡ v �r¶|| }| | d
¡d ¡ d|	|||f }| |¡ q|�sÖt d|¡}nt d|¡}|�rÖ| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}d|	||f }|�r~|�r>d| }t|ƒ}|| ¡ v �r~|| }| | d
¡d ¡ d|	||f }|�rÊ|�sŽd}|}|| ¡ v �rÊ|| }| | d
¡d ¡ d|	||f }| |¡ q|�sêt d|¡}nt d|¡}|�rú| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}d|	|||f }|�r |�r^d| }t|ƒ}|| ¡ v �r || }| | d
¡d ¡ d|	|||f }|�rî|�s°d}|}|| ¡ v �rî|| }| | d
¡d ¡ d|	|||f }| |¡ q|�st d|¡}nt d|¡}|�	r| d¡}	d| d¡ }t|ƒ}| d¡}| |¡ | d¡}d |	|||f }|�rÄ|�r‚d| }t|ƒ}|| ¡ v �rÄ|| }| | d
¡d ¡ d |	|||f }|�	r|�sÔd}|}|| ¡ v �	r|| }| | d
¡d ¡ d |	|||f }| |¡ q|�	s2t d!|¡}nt d"|¡}|�
r2| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}d#|	||f }|�	rÚ|�	ršd| }t|ƒ}|| ¡ v �	rÚ|| }| | d
¡d ¡ d#|	||f }|�
r&|�	sêd}|}|| ¡ v �
r&|| }| | d
¡d ¡ d#|	||f }| |¡ q|�
sFt d$|¡}nt d%|¡}|�rF| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}d&|	||f }|�
rî|�
r®d| }t|ƒ}|| ¡ v �
rî|| }| | d
¡d ¡ d&|	||f }|�r:|�
sþd}|}|| ¡ v �r:|| }| | d
¡d ¡ d&|	||f }| |¡ q|�sZt d'|¡}nt d(|¡}|�rj| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}d)|	|||f }|�r|�rÎd| }t|ƒ}|| ¡ v �r|| }| | d
¡d ¡ d)|	|||f }|�r^|�s d}|}|| ¡ v �r^|| }| | d
¡d ¡ d)|	|||f }| |¡ q|�s~t d*|¡}nt d+|¡}|�rŽ| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}d,|	|||f }|�r4|�ròd| }t|ƒ}|| ¡ v �r4|| }| | d
¡d ¡ d,|	|||f }|�r‚|�sDd}|}|| ¡ v �r‚|| }| | d
¡d ¡ d,|	|||f }| |¡ q|�s¢t d-|¡}nt d.|¡}|�r²| d¡}	d| d¡ }t|ƒ}| d¡}| |¡ | d¡}d/|	|||f }|�rX|�rd| }t|ƒ}|| ¡ v �rX|| }| | d
¡d ¡ d/|	|||f }|�r¦|�shd}|}|| ¡ v �r¦|| }| | d
¡d ¡ d/|	|||f }| |¡ q|�sÆt d0|¡}nt d1|¡}|�rÖ| d¡}	d| d¡ }t|ƒ}| d¡}| |¡ | d¡}d2|	|||f }|�r||�r:d| }t|ƒ}|| ¡ v �r||| }| | d
¡d ¡ d2|	|||f }|�rÊ|�sŒd}|}|| ¡ v �rÊ|| }| | d
¡d ¡ d2|	|||f }| |¡ q|�sêt d3|¡}nt d4|¡}|�rê| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}d5|	||f }|�r’|�rRd| }t|ƒ}|| ¡ v �r’|| }| | d
¡d ¡ d5|	||f }|�rÞ|�s¢d}|}|| ¡ v �rÞ|| }| | d
¡d ¡ d5|	||f }| |¡ q|�sþt d6|¡}nt d7|¡}|�rþ| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}d8|	||f }|�r¦|�rfd| }t|ƒ}|| ¡ v �r¦|| }| | d
¡d ¡ d8|	||f }|�rò|�s¶d}|}|| ¡ v �rò|| }| | d
¡d ¡ d8|	||f }| |¡ q|�st d9|¡}nt d:|¡}|�r| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}d;|	||f }|�rº|�rzd| }t|ƒ}|| ¡ v �rº|| }| | d
¡d ¡ d;|	||f }|�r|�sÊd}|}|| ¡ v �r|| }| | d
¡d ¡ d;|	||f }| |¡ q|�s&t d<|¡}nt d=|¡}|�r&| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}d>|	||f }|�rÎ|�rŽd| }t|ƒ}|| ¡ v �rÎ|| }| | d
¡d ¡ d>|	||f }|�r|�sÞd}|}|| ¡ v �r|| }| | d
¡d ¡ d>|	||f }| |¡ q|�s:t d?|¡}nt d@|¡}|�r:| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}dA|	||f }|�râ|�r¢d| }t|ƒ}|| ¡ v �râ|| }| | d
¡d ¡ dA|	||f }|�r.|�sòd}|}|| ¡ v �r.|| }| | d
¡d ¡ dA|	||f }| |¡ q|�sNt dB|¡}nt dC|¡}|�rN| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}dD|	||f }|�rö|�r¶d| }t|ƒ}|| ¡ v �rö|| }| | d
¡d ¡ dD|	||f }|�rB|�sd}|}|| ¡ v �rB|| }| | d
¡d ¡ dD|	||f }| |¡ q|�sbt dE|¡}nt dF|¡}|�rr| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}dG|	|||f }|�r|�rÖd| }t|ƒ}|| ¡ v �r|| }| | d
¡d ¡ dG|	|||f }|�rf|�s(d}|}|| ¡ v �rf|| }| | d
¡d ¡ dG|	|||f }| |¡ q|�s†t dH|¡}nt dI|¡}|�r–| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}dJ|	|||f }|�r<|�rúd| }t|ƒ}|| ¡ v �r<|| }| | d
¡d ¡ dJ|	|||f }|�rŠ|�sLd}|}|| ¡ v �rŠ|| }| | d
¡d ¡ dJ|	|||f }| |¡ q|�sªt dK|¡}nt dL|¡}|�rº| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}dM|	|||f }|�r`|�rd| }t|ƒ}|| ¡ v �r`|| }| | d
¡d ¡ dM|	|||f }|�r®|�spd}|}|| ¡ v �r®|| }| | d
¡d ¡ dM|	|||f }| |¡ q|�sÎt dN|¡}nt dO|¡}|�rÞ| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}| d¡}dP|	|||f }|�r„|�rBd| }t|ƒ}|| ¡ v �r„|| }| | d
¡d ¡ dP|	|||f }|�rÒ|�s”d}|}|| ¡ v �rÒ|| }| | d
¡d ¡ dP|	|||f }| |¡ q|�sòt dQ|¡}nt dR|¡}|�r| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}| d¡}dS|	|||f }|�r¨|�rfd| }t|ƒ}|| ¡ v �r¨|| }| | d
¡d ¡ dS|	|||f }|�rö|�s¸d}|}|| ¡ v �rö|| }| | d
¡d ¡ dS|	|||f }| |¡ q|�st dT|¡}nt dU|¡}|�r&| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}| d¡}dV|	|||f }|�rÌ|�rŠd| }t|ƒ}|| ¡ v �rÌ|| }| | d
¡d ¡ dV|	|||f }|�r|�sÜd}|}|| ¡ v �r|| }| | d
¡d ¡ dV|	|||f }| |¡ q|�s:t dW|¡}nt dX|¡}|�rJ| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}| d¡}dY|	|||f }|�rð|�r®d| }t|ƒ}|| ¡ v �rð|| }| | d
¡d ¡ dY|	|||f }|�r>|�s d}|}|| ¡ v �r>|| }| | d
¡d ¡ dY|	|||f }| |¡ q|�s^t dZ|¡}nt d[|¡}|�rn| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}| d¡}d\|	|||f }|�r|�rÒd| }t|ƒ}|| ¡ v �r|| }| | d
¡d ¡ d\|	|||f }|�rb|�s$d}|}|| ¡ v �rb|| }| | d
¡d ¡ d\|	|||f }| |¡ q|�s‚t d]|¡}nt d^|¡}|� r’| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}| d¡}d_|	|||f }|� r8|�röd| }t|ƒ}|| ¡ v � r8|| }| | d
¡d ¡ d_|	|||f }|� r†|� sHd}|}|| ¡ v � r†|| }| | d
¡d ¡ d_|	|||f }| |¡ q|� s¦t d`|¡}nt da|¡}|�!r¶| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}| d¡}db|	|||f }|�!r\|�!rd| }t|ƒ}|| ¡ v �!r\|| }| | d
¡d ¡ db|	|||f }|�!rª|�!sld}|}|| ¡ v �!rª|| }| | d
¡d ¡ db|	|||f }| |¡ q|�!sÊt dc|¡}nt dd|¡}|�"rÞ| d¡}	d| d¡ }d| d¡ }t|ƒ}| |¡ | d¡}de|	|||f }|�"r„|�"rBd| }t|ƒ}|| ¡ v �"r„|| }| | d
¡d ¡ de|	|||f }|�"rÒ|�"s”d}|}|| ¡ v �"rÒ|| }| | d
¡d ¡ de|	|||f }| |¡ q|�"sòt df|¡}nt dg|¡}|�$r| d¡}	d| d¡ }d| d¡ }t|ƒ}| |¡ | d¡}| d¡}dh|	||||f }|�#rº|�#rvd| }t|ƒ}|| ¡ v �#rº|| }| | d
¡d ¡ dh|	||||f }|�$r
|�#sÊd}|}|| ¡ v �$r
|| }| | d
¡d ¡ dh|	||||f }| |¡ q|�$s*t di|¡}nt dj|¡}|�%r:| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}dk|	|||f }|�$rà|�$ržd| }t|ƒ}|| ¡ v �$rà|| }| | d
¡d ¡ dk|	|||f }|�%r.|�$sðd}|}|| ¡ v �%r.|| }| | d
¡d ¡ dk|	|||f }| |¡ q|�%sNt dl|¡}nt dm|¡}|�&r^| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}dn|	|||f }|�&r|�%rÂd| }t|ƒ}|| ¡ v �&r|| }| | d
¡d ¡ dn|	|||f }|�&rR|�&sd}|}|| ¡ v �&rR|| }| | d
¡d ¡ dn|	|||f }| |¡ q|�&srt do|¡}nt dp|¡}|�'r‚| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}dq|	|||f }|�'r(|�&ræd| }t|ƒ}|| ¡ v �'r(|| }| | d
¡d ¡ dq|	|||f }|�'rv|�'s8d}|}|| ¡ v �'rv|| }| | d
¡d ¡ dq|	|||f }| |¡ q|�'s–t dr|¡}nt ds|¡}|�(rÆ| d¡}	| d¡}| d¡}| d¡}d| d¡ }t|ƒ}| |¡ | dt¡}du|	|||||f }|�(rh|�(r"d| }t|ƒ}|| ¡ v �(rh|| }| | d
¡d ¡ du|	|||||f }|�(rº|�(sxd}|}|| ¡ v �(rº|| }| | d
¡d ¡ du|	|||||f }| |¡ q|�(sÚt dv|¡}nt dw|¡}|�)rê| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}dx|	|||f }|�)r�|�)rNd| }t|ƒ}|| ¡ v �)r�|| }| | d
¡d ¡ dx|	|||f }|�)rÞ|�)s d}|}|| ¡ v �)rÞ|| }| | d
¡d ¡ dx|	|||f }| |¡ q|�)sþt dy|¡}nt dz|¡}|�+r| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}dx|	|||f }|�*r´|�*rrd| }t|ƒ}|| ¡ v �*r´|| }| | d
¡d ¡ dx|	|||f }|�+r|�*sÄd}|}|| ¡ v �+r|| }| | d
¡d ¡ dx|	|||f }| |¡ q|�+s"t d{|¡}nt d||¡}|�,r2| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}d}|	|||f }|�+rØ|�+r–d| }t|ƒ}|| ¡ v �+rØ|| }| | d
¡d ¡ d}|	|||f }|�,r&|�+sèd}|}|| ¡ v �,r&|| }| | d
¡d ¡ d}|	|||f }| |¡ q|�,sFt d~|¡}nt d|¡}|�-rf| d¡}	| d¡}| d¡}d| d¡ }t|ƒ}| |¡ | d¡}d€|	||||f }|�-r
|�,rÆd| }t|ƒ}|| ¡ v �-r
|| }| | d
¡d ¡ d€|	||||f }|�-rZ|�-sd}|}|| ¡ v �-rZ|| }| | d
¡d ¡ d€|	||||f }| |¡ q|�-szt d�|¡}nt d‚|¡}|�.rŠ| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}dƒ|	|||f }|�.r0|�-rîd| }t|ƒ}|| ¡ v �.r0|| }| | d
¡d ¡ dƒ|	|||f }|�.r~|�.s@d}|}|| ¡ v �.r~|| }| | d
¡d ¡ dƒ|	|||f }| |¡ q|�.sžt d„|¡}nt d…|¡}|�/r®| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}d†|	|||f }|�/rT|�/rd| }t|ƒ}|| ¡ v �/rT|| }| | d
¡d ¡ d†|	|||f }|�/r¢|�/sdd}|}|| ¡ v �/r¢|| }| | d
¡d ¡ d†|	|||f }| |¡ q|�/sÂt d‡|¡}nt dˆ|¡}|�0râ| d¡}	| d¡}| d¡}d| d¡ }t|ƒ}| |¡ | d¡}d‰|	||||f }|�0r†|�0rBd| }t|ƒ}|| ¡ v �0r†|| }| | d
¡d ¡ d‰|	||||f }|�0rÖ|�0s–d}|}|| ¡ v �0rÖ|| }| | d
¡d ¡ d‰|	||||f }| |¡ q|�0söt dŠ|¡}nt d‹|¡}|�2r| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}| d¡}| d¡}dŒ|	||||f }|�1rº|�1rvd| }t|ƒ}|| ¡ v �1rº|| }| | d
¡d ¡ dŒ|	||||f }|�2r
|�1sÊd}|}|| ¡ v �2r
|| }| | d
¡d ¡ dŒ|	||||f }| |¡ q|�2s*t d�|¡}nt dŽ|¡}|�3rJ| d¡}	d| d¡ }t|ƒ}| |¡ | d¡}| d¡}| d¡}d�|	||||f }|�2rî|�2rªd| }t|ƒ}|| ¡ v �2rî|| }| | d
¡d ¡ d�|	||||f }|�3r>|�2sþd}|}|| ¡ v �3r>|| }| | d
¡d ¡ d�|	||||f }| |¡ q|�3s^t d�|¡}nt d‘|¡}|�4r~| d¡}	| d¡} d| d¡ }t|ƒ}| |¡ | d¡}| d¡}d’|	| |||f }|�4r"|�3rÞd| }t|ƒ}|| ¡ v �4r"|| }| | d
¡d ¡ d’|	| |||f }|�4rr|�4s2d}|}|| ¡ v �4rr|| }| | d
¡d ¡ d’|	| |||f }| |¡ q|�4s’t d“|¡}nt d”|¡}|�5r¢| d¡}	| d¡} d| d¡ }t|ƒ}| |¡ | d¡}d•|	| ||f }|�5rH|�5rd| }t|ƒ}|| ¡ v �5rH|| }| | d
¡d ¡ d•|	| ||f }|�5r–|�5sXd}|}|| ¡ v �5r–|| }| | d
¡d ¡ d•|	| ||f }| |¡ q|�5s¶t d–|¡}nt d—|¡}|�6rÆ| d¡}	| d¡}!d| d¡ }t|ƒ}| |¡ | d¡}d˜|	|!||f }|�6rl|�6r*d| }t|ƒ}|| ¡ v �6rl|| }| | d
¡d ¡ d˜|	|!||f }|�6rº|�6s|d}|}|| ¡ v �6rº|| }| | d
¡d ¡ d˜|	|!||f }| |¡ q|�6sÚt d™|¡}nt dš|¡}|�7rú| d¡}	| d¡}d| d¡ }t|ƒ}| d¡}| |¡ | d¡}d›|	||||f }|�7rž|�7rZd| }t|ƒ}|| ¡ v �7rž|| }| | d
¡d ¡ d›|	||||f }|�7rî|�7s®d}|}|| ¡ v �7rî|| }| | d
¡d ¡ d›|	||||f }| |¡ q|�8st dœ|¡}nt d�|¡}|�9r.| d¡}	| d¡}d| d¡ }t|ƒ}| d¡}| |¡ | d¡}dž|	||||f }|�8rÒ|�8rŽd| }t|ƒ}|| ¡ v �8rÒ|| }| | d
¡d ¡ dž|	||||f }|�9r"|�8sâd}|}|| ¡ v �9r"|| }| | d
¡d ¡ dž|	||||f }| |¡ q|�9sBt dŸ|¡}nt d |¡}|�:rb| d¡}	| d¡}d| d¡ }t|ƒ}| |¡ | d¡}| d¡}d¡|	||||f }|�:r|�9rÂd| }t|ƒ}|| ¡ v �:r|| }| | d
¡d ¡ d¡|	||||f }|�:rV|�:sd}|}|| ¡ v �:rV|| }| | d
¡d ¡ d¡|	||||f }| |¡ q| |¡ qq|||fS )¢Nr<   zG^(\s*)self\.drag_and_drop\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$z9^(\s*)self\.drag_and_drop\(([\S]+),\s?([\S]+)\)([\S\s]*)$r   r=   r?   é   z%sself.drag_and_drop(%s, %s)%sz
  # %s, %sr>   r   r"   zI^(\s*)self\.hover_and_click\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$z;^(\s*)self\.hover_and_click\(([\S]+),\s?([\S]+)\)([\S\s]*)$z %sself.hover_and_click(%s, %s)%szB^(\s*)self\.(\S*)_click\((r?['"][\S\s]+['"]),([\S\s]*)\)([\S\s]*)$z6^(\s*)self\.(\S*)_click\(([\S]+),([\S\s]*)\)([\S\s]*)$é   z%sself.%s_click(%s,%s)%sz  # %sz8^(\s*)self\.(\S*)_click\((r?['"][\S\s]+['"])\)([\S\s]*)$z,^(\s*)self\.(\S*)_click\(([\S]+)\)([\S\s]*)$z%sself.%s_click(%s)%sz2^(\s*)self\.click\((r?['"][\S\s]+['"])\)([\S\s]*)$z&^(\s*)self\.click\(([\S]+)\)([\S\s]*)$z%sself.click(%s)%sz;^(\s*)self\.js_click_(\S*)\((r?['"][\S\s]+['"])\)([\S\s]*)$z/^(\s*)self\.js_click_(\S*)\(([\S]+)\)([\S\s]*)$z%sself.js_click_%s(%s)%sz<^(\s*)self\.click\((r?['"][\S\s]+['"]),([\S\s]*)\)([\S\s]*)$z0^(\s*)self\.click\(([\S]+),([\S\s]*)\)([\S\s]*)$z%sself.click(%s,%s)%sz=^(\s*)self\.click_if_visible\((r?['"][\S\s]+['"])\)([\S\s]*)$z1^(\s*)self\.click_if_visible\(([\S]+)\)([\S\s]*)$z%sself.click_if_visible(%s)%sz2^(\s*)self\.hover\((r?['"][\S\s]+['"])\)([\S\s]*)$z&^(\s*)self\.hover\(([\S]+)\)([\S\s]*)$z%sself.hover(%s)%sz:^(\s*)self\.(\S*)_element\((r?['"][\S\s]+['"])\)([\S\s]*)$z.^(\s*)self\.(\S*)_element\(([\S]+)\)([\S\s]*)$z%sself.%s_element(%s)%sz;^(\s*)self\.(\S*)_elements\((r?['"][\S\s]+['"])\)([\S\s]*)$z/^(\s*)self\.(\S*)_elements\(([\S]+)\)([\S\s]*)$z%sself.%s_elements(%s)%szG^(\s*)self\.set_text_content\((r?['"][\S\s]+['"]),([\S\s]*)\)([\S\s]*)$z;^(\s*)self\.set_text_content\(([\S]+),([\S\s]*)\)([\S\s]*)$z %sself.set_text_content(%s,%s)%sz@^(\s*)self\.highlight\((r?['"][\S\s]+['"]),([\S\s]*)\)([\S\s]*)$z4^(\s*)self\.highlight\(([\S]+),([\S\s]*)\)([\S\s]*)$z%sself.highlight(%s,%s)%sz6^(\s*)self\.highlight\((r?['"][\S\s]+['"])\)([\S\s]*)$z*^(\s*)self\.highlight\(([\S]+)\)([\S\s]*)$z%sself.highlight(%s)%sz?^(\s*)self\.check_if_unchecked\((r?['"][\S\s]+['"])\)([\S\s]*)$z3^(\s*)self\.check_if_unchecked\(([\S]+)\)([\S\s]*)$z%sself.check_if_unchecked(%s)%sz?^(\s*)self\.uncheck_if_checked\((r?['"][\S\s]+['"])\)([\S\s]*)$z3^(\s*)self\.uncheck_if_checked\(([\S]+)\)([\S\s]*)$z%sself.uncheck_if_checked(%s)%szA^(\s*)self\.select_if_unselected\((r?['"][\S\s]+['"])\)([\S\s]*)$z5^(\s*)self\.select_if_unselected\(([\S]+)\)([\S\s]*)$z!%sself.select_if_unselected(%s)%szA^(\s*)self\.unselect_if_selected\((r?['"][\S\s]+['"])\)([\S\s]*)$z5^(\s*)self\.unselect_if_selected\(([\S]+)\)([\S\s]*)$z!%sself.unselect_if_selected(%s)%sz<^(\s*)self\.switch_to_frame\((r?['"][\S\s]+['"])\)([\S\s]*)$z0^(\s*)self\.switch_to_frame\(([\S]+)\)([\S\s]*)$z%sself.switch_to_frame(%s)%szA^(\s*)(\S*)\sself\.frame_switch\((r?['"][\S\s]+['"])\):([\S\s]*)$z5^(\s*)(\S*)\sself\.frame_switch\(([\S]+)\):([\S\s]*)$z%s%s self.frame_switch(%s):%szA^(\s*)self\.assert_element_(\S*)\((r?['"][\S\s]+['"])\)([\S\s]*)$z5^(\s*)self\.assert_element_(\S*)\(([\S]+)\)([\S\s]*)$z%sself.assert_element_%s(%s)%szC^(\s*)self\.wait_for_element_(\S*)\((r?['"][\S\s]+['"])\)([\S\s]*)$z7^(\s*)self\.wait_for_element_(\S*)\(([\S]+)\)([\S\s]*)$z %sself.wait_for_element_%s(%s)%szE^(\s*)self\.update_text\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$z9^(\s*)self\.update_text\(([\S]+),\s?([\S\s]+)\)([\S\s]*)$z%sself.update_text(%s, %s)%sz>^(\s*)self\.type\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$z2^(\s*)self\.type\(([\S]+),\s?([\S\s]+)\)([\S\s]*)$z%sself.type(%s, %s)%sz?^(\s*)self\.input\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$z3^(\s*)self\.input\(([\S]+),\s?([\S\s]+)\)([\S\s]*)$z%sself.input(%s, %s)%sz?^(\s*)self\.write\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$z3^(\s*)self\.write\(([\S]+),\s?([\S\s]+)\)([\S\s]*)$z%sself.write(%s, %s)%szB^(\s*)self\.add_text\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$z6^(\s*)self\.add_text\(([\S]+),\s?([\S\s]+)\)([\S\s]*)$z%sself.add_text(%s, %s)%szC^(\s*)self\.send_keys\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$z7^(\s*)self\.send_keys\(([\S]+),\s?([\S\s]+)\)([\S\s]*)$z%sself.send_keys(%s, %s)%szC^(\s*)self\.set_value\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$z7^(\s*)self\.set_value\(([\S]+),\s?([\S\s]+)\)([\S\s]*)$z%sself.set_value(%s, %s)%sz>^(\s*)self\.press_(\S*)_arrow\((r?['"][\S\s]+['"])\)([\S\s]*)$z2^(\s*)self\.press_(\S*)_arrow\(([\S]+)\)([\S\s]*)$z%sself.press_%s_arrow(%s)%szK^(\s*)self\.press_(\S*)_arrow\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$z?^(\s*)self\.press_(\S*)_arrow\(([\S]+),\s?([\S\s]+)\)([\S\s]*)$z%sself.press_%s_arrow(%s, %s)%szE^(\s*)self\.assert_text\(([\S\s]+),\s?(r?['"][\S\s]+['"])\)([\S\s]*)$z9^(\s*)self\.assert_text\(([\S\s]+),\s?([\S]+)\)([\S\s]*)$z%sself.assert_text(%s, %s)%szK^(\s*)self\.assert_exact_text\(([\S\s]+),\s?(r?['"][\S\s]+['"])\)([\S\s]*)$z?^(\s*)self\.assert_exact_text\(([\S\s]+),\s?([\S]+)\)([\S\s]*)$z"%sself.assert_exact_text(%s, %s)%szC^(\s*)self\.find_text\(([\S\s]+),\s?(r?['"][\S\s]+['"])\)([\S\s]*)$z7^(\s*)self\.find_text\(([\S\s]+),\s?([\S]+)\)([\S\s]*)$z%sself.find_text(%s, %s)%szO^(\s*)(\S*)\sself\.is_text_(\S*)\(([\S\s]+),\s?(r?['"][\S\s]+['"])\):([\S\s]*)$zC^(\s*)(\S*)\sself\.is_text_(\S*)\(([\S\s]+),\s?([\S]+)\):([\S\s]*)$é   z%s%s self.is_text_%s(%s, %s):%szG^(\s*)self\.wait_for_text\(([\S\s]+),\s?(r?['"][\S\s]+['"])\)([\S\s]*)$z;^(\s*)self\.wait_for_text\(([\S\s]+),\s?([\S]+)\)([\S\s]*)$z%sself.wait_for_text(%s, %s)%szO^(\s*)self\.wait_for_text_visible\(([\S\s]+),\s?(r?['"][\S\s]+['"])\)([\S\s]*)$zC^(\s*)self\.wait_for_text_visible\(([\S\s]+),\s?([\S]+)\)([\S\s]*)$zS^(\s*)self\.wait_for_text_not_visible\(([\S\s]+),\s?(r?['"][\S\s]+['"])\)([\S\s]*)$zG^(\s*)self\.wait_for_text_not_visible\(([\S\s]+),\s?([\S]+)\)([\S\s]*)$z*%sself.wait_for_text_not_visible(%s, %s)%szE^(\s*)(\S*)\sself\.is_element_(\S*)\((r?['"][\S\s]+['"])\):([\S\s]*)$z9^(\s*)(\S*)\sself\.is_element_(\S*)\(([\S]+)\):([\S\s]*)$z%s%s self.is_element_%s(%s):%sz@^(\s*)(\S*)\sself\.is_selected\((r?['"][\S\s]+['"])\):([\S\s]*)$z4^(\s*)(\S*)\sself\.is_selected\(([\S]+)\):([\S\s]*)$z%s%s self.is_selected(%s):%szM^(\s*)self\.assert(\S*)\(self\.is_selected\((r?['"][\S\s]+['"])\)\)([\S\s]*)$zA^(\s*)self\.assert(\S*)\(self\.is_selected\(([\S]+)\)\)([\S\s]*)$z'%sself.assert%s(self.is_selected(%s))%szR^(\s*)self\.assert(\S*)\(self\.is_element_(\S*)\((r?['"][\S\s]+['"])\)\)([\S\s]*)$zF^(\s*)self\.assert(\S*)\(self\.is_element_(\S*)\(([\S]+)\)\)([\S\s]*)$z)%sself.assert%s(self.is_element_%s(%s))%szT^(\s*)self\.set_attribute\((r?['"][\S\s]+['"]),\s?([\S\s]+),\s?([\S\s]+)\)([\S\s]*)$zH^(\s*)self\.set_attribute\(([\S]+),\s?([\S\s]+),\s?([\S\s]+)\)([\S\s]*)$z"%sself.set_attribute(%s, %s, %s)%szU^(\s*)self\.set_attributes\((r?['"][\S\s]+['"]),\s?([\S\s]+),\s?([\S\s]+)\)([\S\s]*)$zI^(\s*)self\.set_attributes\(([\S]+),\s?([\S\s]+),\s?([\S\s]+)\)([\S\s]*)$z#%sself.set_attributes(%s, %s, %s)%sz[^(\s*)(\S*)\s?=\s?self\.get_attribute\((r?['"][\S\s]+['"]),\s?(['"][\S\s]+['"])\)([\S\s]*)$zO^(\s*)(\S*)\s?=\s?self\.get_attribute\(([\S]+),\s?(['"][\S\s]+['"])\)([\S\s]*)$z#%s%s = self.get_attribute(%s, %s)%szA^(\s*)(\S*)\s?=\s?self\.get_text\((r?['"][\S\s]+['"])\)([\S\s]*)$z5^(\s*)(\S*)\s?=\s?self\.get_text\(([\S]+)\)([\S\s]*)$z%s%s = self.get_text(%s)%szL^(\s*)if\s(\S*\s?\S*)\sin\s?self\.get_text\((r?['"][\S\s]+['"])\):([\S\s]*)$z@^(\s*)if\s(\S*\s?\S*)\sin\s?self\.get_text\(([\S]+)\):([\S\s]*)$z%sif %s in self.get_text(%s):%szD^(\s*)self\.(\S*)_element\((r?['"][\S\s]+['"]),([\S\s]*)\)([\S\s]*)$z8^(\s*)self\.(\S*)_element\(([\S]+),([\S\s]*)\)([\S\s]*)$z%sself.%s_element(%s,%s)%szE^(\s*)self\.(\S*)_elements\((r?['"][\S\s]+['"]),([\S\s]*)\)([\S\s]*)$z9^(\s*)self\.(\S*)_elements\(([\S]+),([\S\s]*)\)([\S\s]*)$z%sself.%s_elements(%s,%s)%szP^(\s*)self\.select_option_by_(\S*)\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)$zD^(\s*)self\.select_option_by_(\S*)\(([\S]+),\s?([\S\s]+)\)([\S\s]*)$z$%sself.select_option_by_%s(%s, %s)%s)	rI   r)   rJ   rK   rL   r!   rW   r*   rH   )"rR   Úselector_dictÚobject_dictÚadd_commentsÚseleniumbase_linesrM   ÚchangedrS   r3   rT   Z	selector1Z	selector2ÚcommentsÚcommandZselector_object1Zselector_object2Zobject_name1Zobject_name2Úactionr    Z
other_argsZselector_objectÚobject_nameZby_typeZif_typeÚtextÚarrowÚtimesÚa_typeZv_typeÚ	attributeÚvalueÚvar_nameZ
var_prefixr   r   r   Úprocess_test_fileÞ   sæ   

ýý



ü
ÿü
ÿü
ýý



ü
ÿü
ÿü
ýý




ûûû
ýý



üüü
ýý


ýýý
ýý



üüü
ýý



üüü
ýý


ýýý
ýý


ýýý
ýý



üüü
ýý



üüü
ýý



üüü
ýý



üüü
ýý


ýýý
ýý


ýýý
ýý


ýýý
ýý


ýýý
ýý


ýýý
ýý


ýýý
ýý



üüü
ýý



üüü
ýý



üüü
ýý



üüü
ýý



üüü
ýý



üüü
ýý



üüü
ýý



üüü
ýý



üüü
ýý



üüü
ýý


üüü
ýý



ûûû
ýý



üüü
ýý



üüü
ýý



üüü
ýý





úúú
ýý



üüü
ýý



üüü
ýý



üüü
ýý




ûûû
ýý



üüü
ýý



üüü
ýý




ûûû
üý




ûûû
üý




ûûû
ýý




ûûû
ýý



üüü
ýý



üüü
ýý




ûûû
ýý




ûûû
ýý




ûûû

rr   c                   C   s   t dd� d S )Nr   r
   ©Úmainr   r   r   r   Úextract_objectsÙ  s    ru   c                   C   s   t dd� d S )Nr   r
   rs   r   r   r   r   Úinject_objectsÝ  s    rv   c                   C   s   t dd� d S )Nr   r
   rs   r   r   r   r   r   á  s    r   c                   C   s   t dd� d S )Nr   r
   rs   r   r   r   r   Úrevert_objectså  s    rw   c           +      C   sÒ  d}t tjƒ}tjdd … }d}| dks8| dks8| dkrxt |ƒdkrx|dd … }|D ]"}|dksh|d	krnd
}qTt| ƒ qTtjd  d¡d dksÚtjd  d¡d dksÚtjd  d¡d dksÚtjd  d¡d dk�r|dk rìt| ƒ n |dk�r| dk�rt| ƒ n n nt| ƒ |d }| d¡�s:td||f ƒ‚t|ddd��}| ¡ }	W d   ƒ n1 �sh0    Y  d|	v�rŒtd||f ƒ‚|	 d¡}
t	|
ƒ\}}}t
ƒ \}}}g }|D ]P}t|ƒ}||v�r¸| |¡ t|ƒ}| |¡ |d  ||f¡ | |¡ �q¸| dk�s| dk�r&t|ƒ | dk�r<tdƒ d S i }i }| ¡ D ]Z}|| D ]J}dt|ƒt|d ƒf ||d < dt|ƒt|d ƒf }|d ||< �qX�qLi }t
ƒ \}}}| ¡ D ]}||v �rÀ|| ||< �qÀ| dk�sò| dk�rÐt	|
||d�\}}}g }|D ]}||v�r| |¡ �q|D ]6} t| v �r.|  t¡d  ¡ }!|!|v �r.| |!¡ �q.|�rÐg }"d}#|D ]R} |  d¡�r¾d | v �r¾|#�s¾d
}#|D ]}$d!t|$f }%|" |%¡ �q |" | ¡ �qx|"}| dk�r`t	|
||d"�\}}}g }&|D ]}||&v�rö|& |¡ �qö|&�r`g }"|D ]:} t| v �rN|  t¡d  ¡ }!|!|&v �rN�q |" | ¡ �q |"}d}'|D ]} |'| 7 }'|'d7 }'�qh|'d d… }'| d¡d }(|(d })t|)d#dd�}*|* |'¡ |* ¡  td$|) ƒ d S )%Nz[A SeleniumBase Python file]r=   Fr   r   r   r   z-cz
--commentsTr   ú/r   Zseleniumbaseú\Zsbaser?   r   z.pyz,

`%s` is not a Python file!

Expecting: %s
r9   r%   r&   z	def test_zA

`%s` is not a valid SeleniumBase unittest file!

Expecting: %s
r;   r:   r"   z%s.%s)rb   rd   ÚfromÚimportrX   )rc   rd   r$   z
>>> ["%s"] was updated!
)r+   ÚsysÚargvr   rH   Úendswithr   r-   rG   rr   rV   rW   r)   r^   r8   r1   r*   rZ   Ú
p_o_importÚstripÚremoveÚ
startswithr.   r0   )+r   Zexpected_argÚnum_argsÚcommand_argsrd   ÚoptionsÚoptionZseleniumbase_filerN   rO   rR   re   rM   rf   rP   Zexisting_selectorsr2   Znew_page_selectorsr    rq   rb   rc   r4   r5   rj   Zgood_sel_dictZaaZbbÚccZs_keyZadded_classesÚitemrS   ÚtokenZsb_linesZfit_inZadd_meZimport_lineZremoved_classesZseleniumbase_codeZbase_file_nameZconverted_file_nameÚout_filer   r   r   rt   é  sþ    
ÿþ
ÿþýü



ÿÿ(
ÿÿ




 
ÿ



ÿ



rt   Ú__main__)N)NNF)Ú__doc__rD   rJ   r|   r,   r   rE   rF   r   r   r   r   r	   r!   r8   rV   rW   r^   rr   ru   rv   r   rw   rt   Ú__name__r   r   r   r   Ú<module>   sb   

"7
 ÿ
                       