a
    7ñ»jª  ã                &   @   sÜ  d dl mZ dd„ Zedƒedƒedƒedƒedƒed	ƒed
ƒedƒedƒedƒedƒedƒdd„ ƒƒƒƒƒƒƒƒƒƒƒƒZedƒedƒedƒedƒedƒedƒedƒedƒdd„ ƒƒƒƒƒƒƒƒZedƒedƒedƒedƒed ƒed!ƒed"ƒed#ƒed$ƒed%ƒed&ƒed'ƒed(ƒed)ƒed*ƒed+ƒed,ƒed-ƒed.ƒed/ƒed0ƒed1ƒed2ƒed3ƒed4ƒed5ƒed6ƒed7ƒed8ƒed9ƒed:ƒed;ƒed<ƒed=ƒed>ƒed?ƒd@dA„ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZedBƒedCƒedDƒedEƒedFƒedGƒedHƒedIƒedJƒedKƒedLƒedMƒedNƒedOƒedPƒedQƒedRƒedSƒedTƒedUƒedVƒedWƒedXƒedYƒedZƒed[ƒed\ƒed]ƒed^ƒed_ƒed`ƒedaƒdbdc„ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZeddƒedeƒedfƒedgƒedhƒediƒdjdk„ ƒƒƒƒƒƒZedlƒedmƒednƒedoƒedpƒedqƒedrƒedsƒdtdu„ ƒƒƒƒƒƒƒƒZedvƒedwƒedxƒedyƒedzƒed{ƒd|d}„ ƒƒƒƒƒƒZ	ed~ƒedƒed€ƒed�ƒed‚ƒedƒƒed„ƒed…ƒd†d‡„ ƒƒƒƒƒƒƒƒZ
edˆƒed‰ƒedŠƒed‹ƒedŒƒed�ƒedŽƒed�ƒd�d‘„ ƒƒƒƒƒƒƒƒZed’ƒed“ƒed”ƒed•ƒed–ƒed—ƒd˜d™„ ƒƒƒƒƒƒZedšƒed›ƒedœƒed�ƒdždŸ„ ƒƒƒƒZed ƒed¡ƒed¢ƒed£ƒed¤ƒed¥ƒd¦d§„ ƒƒƒƒƒƒZed¨ƒed©ƒedªƒed«ƒd¬d­„ ƒƒƒƒZed®ƒed¯ƒed°ƒed±ƒed²ƒed³ƒed´ƒedµƒd¶d·„ ƒƒƒƒƒƒƒƒZed¸ƒed¹ƒedºƒed»ƒd¼d½„ ƒƒƒƒZed¾ƒed¿ƒedÀƒedÁƒdÂdÃ„ ƒƒƒƒZedÄƒedÅƒedÆƒdÇdÈ„ ƒƒƒZedÉƒedÊƒedËƒdÌdÍ„ ƒƒƒZedÎƒedÏƒedÐƒedÑƒedÒƒedÓƒedÔƒedÕƒdÖd×„ ƒƒƒƒƒƒƒƒZedØƒedÙƒedÚƒedÛƒedÜƒedÝƒedÞƒedßƒdàdá„ ƒƒƒƒƒƒƒƒZedâƒedãƒedäƒedåƒedæƒedçƒdèdé„ ƒƒƒƒƒƒZedêƒedëƒedìƒedíƒedîƒedïƒdðdñ„ ƒƒƒƒƒƒZedòƒedóƒedôƒedõƒedöƒed÷ƒedøƒedùƒedúƒedûƒedüƒedýƒedþƒedÿƒe�d ƒe�dƒe�dƒe�dƒe�dƒe�dƒ�d�d„ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZe�dƒe�d	ƒe�d
ƒe�dƒe�dƒe�dƒe�dƒe�dƒ�d�d„ ƒƒƒƒƒƒƒƒZe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒ�d�d„ ƒƒƒƒƒƒZe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒ�d �d!„ ƒƒƒƒƒƒZe�d"ƒe�d#ƒe�d$ƒe�d%ƒe�d&ƒe�d'ƒ�d(�d)„ ƒƒƒƒƒƒZe�d*ƒe�d+ƒe�d,ƒe�d-ƒe�d.ƒe�d/ƒ�d0�d1„ ƒƒƒƒƒƒZe�d2ƒe�d3ƒe�d4ƒe�d5ƒe�d6ƒe�d7ƒe�d8ƒe�d9ƒ�d:�d;„ ƒƒƒƒƒƒƒƒZe�d<ƒe�d=ƒe�d>ƒe�d?ƒe�d@ƒe�dAƒe�dBƒe�dCƒ�dD�dE„ ƒƒƒƒƒƒƒƒZ e�dFƒe�dGƒe�dHƒe�dIƒe�dJƒe�dKƒe�dLƒe�dMƒe�dNƒe�dOƒe�dPƒe�dQƒ�dR�dS„ ƒƒƒƒƒƒƒƒƒƒƒƒZ!e�dTƒe�dUƒe�dVƒe�dWƒe�dXƒe�dYƒe�dZƒe�d[ƒ�d\�d]„ ƒƒƒƒƒƒƒƒZ"e�d^ƒe�d_ƒe�d`ƒe�daƒe�dbƒe�dcƒe�ddƒe�deƒ�df�dg„ ƒƒƒƒƒƒƒƒZ#e�dhƒe�diƒe�djƒe�dkƒe�dlƒe�dmƒe�dnƒe�doƒe�dpƒe�dqƒe�drƒe�dsƒe�dtƒe�duƒe�dvƒe�dwƒ�dx�dy„ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZ$e�dzƒe�d{ƒe�d|ƒe�d}ƒe�d~ƒe�dƒe�d€ƒe�d�ƒe�d‚ƒe�dƒƒe�d„ƒe�d…ƒe�d†ƒe�d‡ƒe�dˆƒe�d‰ƒ�dŠ�d‹„ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZ%e�dŒƒe�d�ƒe�dŽƒe�d�ƒe�d�ƒe�d‘ƒe�d’ƒe�d“ƒe�d”ƒe�d•ƒe�d–ƒe�d—ƒe�d˜ƒe�d™ƒe�dšƒe�d›ƒ�dœ�d�„ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZ&e�džƒe�dŸƒe�d ƒe�d¡ƒ�d¢�d£„ ƒƒƒƒZ'e�d¤ƒe�d¥ƒe�d¦ƒe�d§ƒe�d¨ƒe�d©ƒe�dªƒe�d«ƒ�d¬�d­„ ƒƒƒƒƒƒƒƒZ(e�d®ƒe�d¯ƒe�d°ƒe�d±ƒe�d²ƒe�d³ƒe�d´ƒe�dµƒ�d¶�d·„ ƒƒƒƒƒƒƒƒZ)e�d¸ƒe�d¹ƒe�dºƒe�d»ƒe�d¼ƒe�d½ƒe�d¾ƒe�d¿ƒ�dÀ�dÁ„ ƒƒƒƒƒƒƒƒZ*e�dÂƒe�dÃƒe�dÄƒe�dÅƒ�dÆ�dÇ„ ƒƒƒƒZ+e�dÈƒe�dÉƒ�dÊ�dË„ ƒƒZ,e�dÌƒe�dÍƒ�dÎ�dÏ„ ƒƒZ-e�dÐƒe�dÑƒ�dÒ�dÓ„ ƒƒZ.e�dÔƒe�dÕƒ�dÖ�d×„ ƒƒZ/e�dØƒe�dÙƒ�dÚ�dÛ„ ƒƒZ0e�dÜƒe�dÝƒ�dÞ�dß„ ƒƒZ1e�dàƒe�dáƒe�dâƒe�dãƒ�dä�då„ ƒƒƒƒZ2e�dæƒe�dçƒe�dèƒe�déƒ�dê�dë„ ƒƒƒƒZ3e�dìƒe�díƒe�dîƒe�dïƒ�dð�dñ„ ƒƒƒƒZ4e�dòƒe�dóƒe�dôƒe�dõƒ�dö�d÷„ ƒƒƒƒZ5e�døƒe�dùƒe�dúƒe�dûƒe�düƒe�dýƒe�dþƒe�dÿƒ�d �d„ ƒƒƒƒƒƒƒƒZ6e�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�d	ƒe�d
ƒe�dƒe�dƒe�dƒ�d�d„ ƒƒƒƒƒƒƒƒƒƒƒƒZ7e�dƒe�dƒe�dƒe�dƒ�d�d„ ƒƒƒƒZ8e�dƒe�dƒ�d�d„ ƒƒZ9e�dƒe�dƒ�d�d„ ƒƒZ:e�dƒe�dƒe�d ƒe�d!ƒ�d"�d#„ ƒƒƒƒZ;e�d$ƒe�d%ƒe�d&ƒe�d'ƒ�d(�d)„ ƒƒƒƒZ<e�d*ƒe�d+ƒe�d,ƒe�d-ƒ�d.�d/„ ƒƒƒƒZ=e�d0ƒe�d1ƒe�d2ƒe�d3ƒ�d4�d5„ ƒƒƒƒZ>e�d6ƒe�d7ƒe�d8ƒe�d9ƒ�d:�d;„ ƒƒƒƒZ?e�d<ƒe�d=ƒe�d>ƒe�d?ƒe�d@ƒe�dAƒ�dB�dC„ ƒƒƒƒƒƒZ@e�dDƒe�dEƒe�dFƒe�dGƒe�dHƒe�dIƒ�dJ�dK„ ƒƒƒƒƒƒZAe�dLƒe�dMƒe�dNƒe�dOƒ�dP�dQ„ ƒƒƒƒZBe�dRƒe�dSƒe�dTƒe�dUƒe�dVƒe�dWƒe�dXƒe�dYƒ�dZ�d[„ ƒƒƒƒƒƒƒƒZCe�d\ƒe�d]ƒe�d^ƒe�d_ƒ�d`�da„ ƒƒƒƒZDe�dbƒe�dcƒe�ddƒe�deƒ�df�dg„ ƒƒƒƒZEe�dhƒe�diƒ�dj�dk„ ƒƒZFe�dlƒe�dmƒ�dn�do„ ƒƒZGe�dpƒe�dqƒ�dr�ds„ ƒƒZHe�dtƒe�duƒ�dv�dw„ ƒƒZIe�dxƒe�dyƒe�dzƒe�d{ƒ�d|�d}„ ƒƒƒƒZJe�d~ƒe�dƒ�d€�d�„ ƒƒZKe�d‚ƒe�dƒƒe�d„ƒe�d…ƒ�d†�d‡„ ƒƒƒƒZLe�dˆƒe�d‰ƒ�dŠ�d‹„ ƒƒZMe�dŒƒ�d��dŽ„ ƒZNe�d�ƒe�d�ƒe�d‘ƒe�d’ƒe�d“ƒe�d”ƒe�d•ƒe�d–ƒ�d—�d˜„ ƒƒƒƒƒƒƒƒZOe�d™ƒe�dšƒe�d›ƒe�dœƒ�d��dž„ ƒƒƒƒZPe�dŸƒe�d ƒe�d¡ƒe�d¢ƒe�d£ƒe�d¤ƒe�d¥ƒe�d¦ƒ�d§�d¨„ ƒƒƒƒƒƒƒƒZQe�d©ƒe�dªƒe�d«ƒe�d¬ƒ�d­�d®„ ƒƒƒƒZRe�d¯ƒe�d°ƒe�d±ƒe�d²ƒ�d³�d´„ ƒƒƒƒZSe�dµƒe�d¶ƒe�d·ƒe�d¸ƒ�d¹�dº„ ƒƒƒƒZTe�d»ƒe�d¼ƒ�d½�d¾„ ƒƒZUe�d¿ƒe�dÀƒ�dÁ�dÂ„ ƒƒZVe�dÃƒe�dÄƒe�dÅƒe�dÆƒ�dÇ�dÈ„ ƒƒƒƒZWe�dÉƒe�dÊƒe�dËƒe�dÌƒ�dÍ�dÎ„ ƒƒƒƒZXe�dÏƒe�dÐƒe�dÑƒe�dÒƒe�dÓƒe�dÔƒe�dÕƒe�dÖƒe�d×ƒe�dØƒ�dÙ�dÚ„ ƒƒƒƒƒƒƒƒƒƒZYe�dÛƒe�dÜƒe�dÝƒe�dÞƒe�dßƒe�dàƒe�dáƒe�dâƒe�dãƒe�däƒe�dåƒe�dæƒ�dç�dè„ ƒƒƒƒƒƒƒƒƒƒƒƒZZe�déƒe�dêƒe�dëƒe�dìƒe�díƒe�dîƒe�dïƒe�dðƒe�dñƒe�dòƒe�dóƒe�dôƒe�dõƒe�döƒe�d÷ƒe�døƒe�dùƒe�dúƒe�dûƒe�düƒe�dýƒe�dþƒe�dÿƒe�d ƒ�d�d„ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZ[e�dƒe�dƒe�dƒe�dƒe�dƒe�dƒ�d	�d
„ ƒƒƒƒƒƒZ\e�dƒe�dƒe�dƒe�dƒ�d�d„ ƒƒƒƒZ]e�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�dƒe�d ƒe�d!ƒe�d"ƒe�d#ƒe�d$ƒe�d%ƒe�d&ƒe�d'ƒe�d(ƒ�d)�d*„ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZ^e�d+ƒe�d,ƒe�d-ƒe�d.ƒe�d/ƒe�d0ƒe�d1ƒe�d2ƒe�d3ƒe�d4ƒe�d5ƒe�d6ƒe�d7ƒe�d8ƒe�d9ƒe�d:ƒe�d;ƒe�d<ƒe�d=ƒe�d>ƒe�d?ƒe�d@ƒe�dAƒe�dBƒe�dCƒe�dDƒe�dEƒe�dFƒ�dG�dH„ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZ_e�dIƒe�dJƒe�dKƒe�dLƒ�dM�dN„ ƒƒƒƒZ`e�dOƒe�dPƒe�dQƒe�dRƒ�dS�dT„ ƒƒƒƒZae�dUƒe�dVƒe�dWƒe�dXƒ�dY�dZ„ ƒƒƒƒZbe�d[ƒe�d\ƒe�d]ƒe�d^ƒ�d_�d`„ ƒƒƒƒZce�daƒe�dbƒ�dc�dd„ ƒƒZd�deS (f  é    )Ústepc                 C   s4   |   dd¡  dd¡  dd¡} |   dd¡  d	d
¡} | S )Nz\\ú\z\tú	z\nÚ
z\"ú"z\'ú')Úreplace)Útext© r
   ú1E:\soccer\ml_env\Lib\site-packages\sbase/steps.pyÚnormalize_text   s    r   zOpen '{url}'zOpen "{url}"zOpen URL '{url}'zOpen URL "{url}"zUser opens '{url}'zUser opens "{url}"zUser opens URL '{url}'zUser opens URL "{url}"zUser goes to '{url}'zUser goes to "{url}"zUser goes to URL '{url}'zUser goes to URL "{url}"c                 C   s   | j }| |¡ d S ©N)ÚsbÚopen©ÚcontextÚurlr   r
   r
   r   Úopen_url
   s    r   zClick '{selector}'zClick "{selector}"zClick element '{selector}'zClick element "{selector}"zUser clicks '{selector}'zUser clicks "{selector}"z User clicks element '{selector}'z User clicks element "{selector}"c                 C   s   | j }| |¡ d S r   )r   Zclick©r   Úselectorr   r
   r
   r   Úclick_element   s    	r   z$Type text '{text}' into '{selector}'z$Type text "{text}" into "{selector}"z$Type text '{text}' into "{selector}"z$Type text "{text}" into '{selector}'z"Type text '{text}' in '{selector}'z"Type text "{text}" in "{selector}"z"Type text '{text}' in "{selector}"z"Type text "{text}" in '{selector}'zType '{text}' into '{selector}'zType "{text}" into "{selector}"zType '{text}' into "{selector}"zType "{text}" into '{selector}'zType '{text}' in '{selector}'zType "{text}" in "{selector}"zType '{text}' in "{selector}"zType "{text}" in '{selector}'zIn '{selector}' type '{text}'zIn "{selector}" type "{text}"zIn '{selector}' type "{text}"zIn "{selector}" type '{text}'zInto '{selector}' type '{text}'zInto "{selector}" type "{text}"zInto '{selector}' type "{text}"zInto "{selector}" type '{text}'z#Find '{selector}' and type '{text}'z#Find "{selector}" and type "{text}"z#Find '{selector}' and type "{text}"z#Find "{selector}" and type '{text}'z#User types '{text}' in '{selector}'z#User types "{text}" in "{selector}"z#User types '{text}' in "{selector}"z#User types "{text}" in '{selector}'z%User types '{text}' into '{selector}'z%User types "{text}" into "{selector}"z%User types '{text}' into "{selector}"z%User types "{text}" into '{selector}'c                 C   s   | j }t|ƒ}| ||¡ d S r   )r   r   Útype©r   r   r	   r   r
   r
   r   Ú	type_text(   s    %r   z#Add text '{text}' into '{selector}'z#Add text "{text}" into "{selector}"z#Add text '{text}' into "{selector}"z#Add text "{text}" into '{selector}'z!Add text '{text}' in '{selector}'z!Add text "{text}" in "{selector}"z!Add text '{text}' in "{selector}"z!Add text "{text}" in '{selector}'zAdd '{text}' into '{selector}'zAdd "{text}" into "{selector}"zAdd '{text}' into "{selector}"zAdd "{text}" into '{selector}'zAdd '{text}' in '{selector}'zAdd "{text}" in "{selector}"zAdd '{text}' in "{selector}"zAdd "{text}" in '{selector}'zInto '{selector}' add '{text}'zInto "{selector}" add "{text}"zInto '{selector}' add "{text}"zInto "{selector}" add '{text}'zIn '{selector}' add '{text}'zIn "{selector}" add "{text}"zIn '{selector}' add "{text}"zIn "{selector}" add '{text}'z"User adds '{text}' in '{selector}'z"User adds "{text}" in "{selector}"z"User adds '{text}' in "{selector}"z"User adds "{text}" in '{selector}'z$User adds '{text}' into '{selector}'z$User adds "{text}" into "{selector}"z$User adds '{text}' into "{selector}"z$User adds "{text}" into '{selector}'c                 C   s   | j }t|ƒ}| ||¡ d S r   )r   r   Úadd_text©r   r	   r   r   r
   r
   r   r   R   s    !r   zAssert element '{selector}'zAssert element "{selector}"z&Assert element '{selector}' is visiblez&Assert element "{selector}" is visiblez&Element '{selector}' should be visiblez&Element "{selector}" should be visiblec                 C   s   | j }| |¡ d S r   )r   Úassert_elementr   r
   r
   r   r   x   s    r   z$Assert text '{text}' in '{selector}'z$Assert text "{text}" in "{selector}"z$Assert text '{text}' in "{selector}"z$Assert text "{text}" in '{selector}'z,Text in '{selector}' should contain '{text}'z,Text in "{selector}" should contain "{text}"z,Text in '{selector}' should contain "{text}"z,Text in "{selector}" should contain '{text}'c                 C   s   | j }t|ƒ}| ||¡ d S r   ©r   r   Úassert_textr   r
   r
   r   Úassert_text_in_elementƒ   s    	r   zAssert text '{text}'zAssert text "{text}"zAssert text '{text}' is visiblezAssert text "{text}" is visiblezText '{text}' should be visiblezText "{text}" should be visiblec                 C   s   | j }t|ƒ}| |¡ d S r   r   ©r   r	   r   r
   r
   r   r   ‘   s    r   z*Assert exact text '{text}' in '{selector}'z*Assert exact text "{text}" in "{selector}"z*Assert exact text '{text}' in "{selector}"z*Assert exact text "{text}" in '{selector}'z'Text in '{selector}' should be '{text}'z'Text in "{selector}" should be "{text}"z'Text in '{selector}' should be "{text}"z'Text in "{selector}" should be '{text}'c                 C   s   | j }t|ƒ}| ||¡ d S r   )r   r   Úassert_exact_textr   r
   r
   r   r!   �   s    	r!   z%Assert non-empty text in '{selector}'z%Assert non-empty text in "{selector}"z(Assert text in '{selector}' is not emptyz(Assert text in "{selector}" is not emptyz(Text in '{selector}' should be non-emptyz(Text in "{selector}" should be non-emptyz(Text in '{selector}' should not be emptyz(Text in "{selector}" should not be emptyc                 C   s   | j }| |¡ d S r   )r   Úassert_non_empty_textr   r
   r
   r   r"   «   s    	r"   zHighlight '{selector}'zHighlight "{selector}"zHighlight element '{selector}'zHighlight element "{selector}"z Use JS to highlight '{selector}'z Use JS to highlight "{selector}"c                 C   s   | j }| |¡ d S r   )r   Ú	highlightr   r
   r
   r   Úhighlight_element¸   s    r$   zClick link '{link}'zClick link "{link}"zUser clicks link '{link}'zUser clicks link "{link}"c                 C   s   | j }| |¡ d S r   )r   Ú
click_link)r   Úlinkr   r
   r
   r   r%   Ã   s    r%   zJS click '{selector}'zJS click "{selector}"zJS click element '{selector}'zJS click element "{selector}"zUse JS to click '{selector}'zUse JS to click "{selector}"c                 C   s   | j }| |¡ d S r   )r   Újs_clickr   r
   r
   r   r'   Ì   s    r'   zSave screenshot as '{name}'zSave screenshot as "{name}"z!User saves screenshot as '{name}'z!User saves screenshot as "{name}"c                 C   s   | j }t|ƒ}| |¡ d S r   ©r   r   Zsave_screenshot)r   Únamer   r
   r
   r   Úsave_screenshot_as×   s    r*   z)Save screenshot to '{folder}' as '{name}'z)Save screenshot to "{folder}" as "{name}"z)Save screenshot to '{folder}' as "{name}"z)Save screenshot to "{folder}" as '{name}'z/User saves screenshot to '{folder}' as '{name}'z/User saves screenshot to "{folder}" as "{name}"z/User saves screenshot to '{folder}' as "{name}"z/User saves screenshot to "{folder}" as '{name}'c                 C   s   | j }t|ƒ}| ||¡ d S r   r(   )r   r)   Úfolderr   r
   r
   r   Úsave_screenshot_to_folder_asá   s    	r,   zSave screenshot to logszSave a screenshot to the logszUser saves screenshot to logsz#User saves a screenshot to the logsc                 C   s   | j }| ¡  d S r   )r   Úsave_screenshot_to_logs©r   r   r
   r
   r   r-   ï   s    r-   zRefresh pagezReload pagezUser refreshes the pagezUser reloads the pagec                 C   s   | j }| ¡  d S r   )r   Úrefresh_pager.   r
   r
   r   r/   ø   s    r/   zGo backzUser goes backzUser navigates backc                 C   s   | j }| ¡  d S r   )r   Úgo_backr.   r
   r
   r   r0     s    r0   z
Go forwardzUser goes forwardzUser navigates forwardc                 C   s   | j }| ¡  d S r   )r   Ú
go_forwardr.   r
   r
   r   r1   	  s    r1   z%Set value of '{selector}' to '{text}'z%Set value of "{selector}" to "{text}"z%Set value of "{selector}" to '{text}'z%Set value of '{selector}' to "{text}"z+User sets value of '{selector}' to '{text}'z+User sets value of "{selector}" to "{text}"z+User sets value of "{selector}" to '{text}'z+User sets value of '{selector}' to "{text}"c                 C   s   | j }t|ƒ}| ||¡ d S r   )r   r   Ú	set_valuer   r
   r
   r   r2     s    	r2   zSwitch to iframe '{frame}'zSwitch to iframe "{frame}"zSwitch to frame '{frame}'zSwitch to frame "{frame}"z!User switches to iframe '{frame}'z!User switches to iframe "{frame}"z User switches to frame '{frame}'z User switches to frame "{frame}"c                 C   s   | j }| |¡ d S r   )r   Úswitch_to_frame©r   Úframer   r
   r
   r   r3     s    	r3   zSwitch to default contentzExit from iframeszExit from framesz User switches to default contentzUser exits from iframeszUser exits from framesc                 C   s   | j }| ¡  d S r   )r   Úswitch_to_default_contentr.   r
   r
   r   r6   ,  s    r6   zSwitch to parent framezExit current iframezExit current framezUser switches to parent framezUser exits current iframezUser exits current framec                 C   s   | j }| ¡  d S r   )r   Úswitch_to_parent_framer.   r
   r
   r   r7   7  s    r7   z-Into '{selector}' enter MFA code '{totp_key}'z-Into "{selector}" enter MFA code "{totp_key}"z-Into '{selector}' enter MFA code "{totp_key}"z-Into "{selector}" enter MFA code '{totp_key}'z%Into '{selector}' do MFA '{totp_key}'z%Into "{selector}" do MFA "{totp_key}"z%Into '{selector}' do MFA "{totp_key}"z%Into "{selector}" do MFA '{totp_key}'z%Do MFA '{totp_key}' into '{selector}'z%Do MFA "{totp_key}" into "{selector}"z%Do MFA "{totp_key}" into '{selector}'z%Do MFA '{totp_key}' into "{selector}"z-Enter MFA code '{totp_key}' into '{selector}'z-Enter MFA code "{totp_key}" into "{selector}"z-Enter MFA code "{totp_key}" into '{selector}'z-Enter MFA code '{totp_key}' into "{selector}"z3User enters MFA code '{totp_key}' into '{selector}'z3User enters MFA code "{totp_key}" into "{selector}"z3User enters MFA code "{totp_key}" into '{selector}'z3User enters MFA code '{totp_key}' into "{selector}"c                 C   s   | j }| ||¡ d S r   )r   Úenter_mfa_code)r   r   Ztotp_keyr   r
   r
   r   r8   B  s    r8   zOpen if not '{url}'zOpen if not "{url}"zOpen if not URL '{url}'zOpen if not URL "{url}"z!User opens '{url}' if not on pagez!User opens "{url}" if not on pagez%User opens URL '{url}' if not on pagez%User opens URL "{url}" if not on pagec                 C   s   | j }| |¡ d S r   )r   Úopen_if_not_urlr   r
   r
   r   r9   [  s    	r9   z!Select if unselected '{selector}'z!Select if unselected "{selector}"z!Select '{selector}' if unselectedz!Select "{selector}" if unselectedz'User selects '{selector}' if unselectedz'User selects "{selector}" if unselectedc                 C   s   | j }| |¡ d S r   )r   Úselect_if_unselectedr   r
   r
   r   r:   h  s    r:   z!Unselect if selected '{selector}'z!Unselect if selected "{selector}"z!Unselect '{selector}' if selectedz!Unselect "{selector}" if selectedz'User unselects '{selector}' if selectedz'User unselects "{selector}" if selectedc                 C   s   | j }| |¡ d S r   )r   Úunselect_if_selectedr   r
   r
   r   r;   s  s    r;   zCheck if unchecked '{selector}'zCheck if unchecked "{selector}"zCheck '{selector}' if uncheckedzCheck "{selector}" if uncheckedz%User checks '{selector}' if uncheckedz%User checks "{selector}" if uncheckedc                 C   s   | j }| |¡ d S r   )r   Úcheck_if_uncheckedr   r
   r
   r   r<   ~  s    r<   zUncheck if checked '{selector}'zUncheck if checked "{selector}"zUncheck '{selector}' if checkedzUncheck "{selector}" if checkedz%User unchecks '{selector}' if checkedz%User unchecks "{selector}" if checkedc                 C   s   | j }| |¡ d S r   )r   Úuncheck_if_checkedr   r
   r
   r   r=   ‰  s    r=   z-Drag '{drag_selector}' into '{drop_selector}'z-Drag "{drag_selector}" into "{drop_selector}"z-Drag '{drag_selector}' into "{drop_selector}"z-Drag "{drag_selector}" into '{drop_selector}'z3User drags '{drag_selector}' into '{drop_selector}'z3User drags "{drag_selector}" into "{drop_selector}"z3User drags '{drag_selector}' into "{drop_selector}"z3User drags "{drag_selector}" into '{drop_selector}'c                 C   s   | j }| ||¡ d S r   )r   Údrag_and_drop)r   Zdrag_selectorZdrop_selectorr   r
   r
   r   r>   ”  s    	r>   z5Hover '{hover_selector}' and click '{click_selector}'z5Hover "{hover_selector}" and click "{click_selector}"z5Hover '{hover_selector}' and click "{click_selector}"z5Hover "{hover_selector}" and click '{click_selector}'z<User hovers '{hover_selector}' and clicks '{click_selector}'z<User hovers "{hover_selector}" and clicks "{click_selector}"z<User hovers '{hover_selector}' and clicks "{click_selector}"z<User hovers "{hover_selector}" and clicks '{click_selector}'c                 C   s   | j }| ||¡ d S r   )r   Úhover_and_click)r   Zhover_selectorZclick_selectorr   r
   r
   r   r?   ¡  s    	r?   z%Find '{selector}' and select '{text}'z%Find "{selector}" and select "{text}"z%Find '{selector}' and select "{text}"z%Find "{selector}" and select '{text}'z%User selects '{text}' in '{selector}'z%User selects "{text}" in "{selector}"z%User selects "{text}" in '{selector}'z%User selects '{text}' in "{selector}"z,User finds '{selector}' and selects '{text}'z,User finds "{selector}" and selects "{text}"z,User finds '{selector}' and selects "{text}"z,User finds "{selector}" and selects '{text}'c                 C   s   | j }t|ƒ}| ||¡ d S r   )r   r   Úselect_option_by_textr   r
   r
   r   r@   ®  s    r@   z1Find '{selector}' and select '{text}' by {option}z1Find "{selector}" and select "{text}" by {option}z1Find '{selector}' and select "{text}" by {option}z1Find "{selector}" and select '{text}' by {option}z8User finds '{selector}' and selects '{text}' by {option}z8User finds "{selector}" and selects "{text}" by {option}z8User finds '{selector}' and selects "{text}" by {option}z8User finds "{selector}" and selects '{text}' by {option}c                 C   s    | j }t|ƒ}| d¡s"| d¡r.|dd … }| d¡sB| d¡rN|d d… }|dkrd| ||¡ n8|dkrz| ||¡ n"|dkr�| ||¡ ntd| ƒ‚d S )	Nr   r   é   éÿÿÿÿr	   ÚindexÚvaluezUnknown option: %s)r   r   Ú
startswithÚendswithr@   Zselect_option_by_indexZselect_option_by_valueÚ	Exception)r   r   r	   Úoptionr   r
   r
   r   Úselect_option_by_optionÀ  s    	rI   z#Wait for '{selector}' to be visiblez#Wait for "{selector}" to be visiblezWait for element '{selector}'zWait for element "{selector}"z)User waits for '{selector}' to be visiblez)User waits for "{selector}" to be visiblez#User waits for element '{selector}'z#User waits for element "{selector}"c                 C   s   | j }| |¡ d S r   )r   Úwait_for_elementr   r
   r
   r   rJ   Ù  s    	rJ   z&Wait for text '{text}' in '{selector}'z&Wait for text "{text}" in "{selector}"z&Wait for text '{text}' in "{selector}"z&Wait for text "{text}" in '{selector}'z+Wait for '{selector}' to have text '{text}'z+Wait for "{selector}" to have text "{text}"z+Wait for "{selector}" to have text '{text}'z+Wait for '{selector}' to have text "{text}"z,User waits for text '{text}' in '{selector}'z,User waits for text "{text}" in "{selector}"z,User waits for text '{text}' in "{selector}"z,User waits for text "{text}" in '{selector}'z1User waits for '{selector}' to have text '{text}'z1User waits for "{selector}" to have text "{text}"z1User waits for "{selector}" to have text '{text}'z1User waits for '{selector}' to have text "{text}"c                 C   s   | j }t|ƒ}| ||¡ d S r   ©r   r   Úwait_for_textr   r
   r
   r   Úwait_for_text_in_elementæ  s    rM   z,Wait for exact text '{text}' in '{selector}'z,Wait for exact text "{text}" in "{selector}"z,Wait for exact text '{text}' in "{selector}"z,Wait for exact text "{text}" in '{selector}'z1Wait for '{selector}' to have exact text '{text}'z1Wait for "{selector}" to have exact text "{text}"z1Wait for "{selector}" to have exact text '{text}'z1Wait for '{selector}' to have exact text "{text}"z2User waits for exact text '{text}' in '{selector}'z2User waits for exact text "{text}" in "{selector}"z2User waits for exact text '{text}' in "{selector}"z2User waits for exact text "{text}" in '{selector}'z7User waits for '{selector}' to have exact text '{text}'z7User waits for "{selector}" to have exact text "{text}"z7User waits for "{selector}" to have exact text '{text}'z7User waits for '{selector}' to have exact text "{text}"c                 C   s   | j }t|ƒ}| ||¡ d S r   )r   r   Zwait_for_exact_textr   r
   r
   r   Úwait_for_exact_text_in_elementü  s    rN   z'Wait for non-empty text in '{selector}'z'Wait for non-empty text in "{selector}"z,Wait for '{selector}' to have non-empty textz,Wait for "{selector}" to have non-empty textz-User waits for non-empty text in '{selector}'z-User waits for non-empty text in "{selector}"z2User waits for '{selector}' to have non-empty textz2User waits for "{selector}" to have non-empty textz&Wait for '{selector}' to not have textz&Wait for "{selector}" to not have textz-Wait for text in '{selector}' to not be emptyz-Wait for text in "{selector}" to not be emptyz,User waits for '{selector}' to not have textz,User waits for "{selector}" to not have textz3User waits for text in '{selector}' to not be emptyz3User waits for text in "{selector}" to not be emptyc                 C   s   | j }| |¡ d S r   )r   Zwait_for_non_empty_textr   r
   r
   r   Ú"wait_for_non_empty_text_in_element  s    rO   zWait for text '{text}'zWait for text "{text}"zUser waits for text '{text}'zUser waits for text "{text}"c                 C   s   | j }t|ƒ}| |¡ d S r   rK   r    r
   r
   r   rL   '  s    rL   zDouble click '{selector}'zDouble click "{selector}"z!Double click element '{selector}'z!Double click element "{selector}"zUser double clicks '{selector}'zUser double clicks "{selector}"z'User double clicks element '{selector}'z'User double clicks element "{selector}"c                 C   s   | j }| |¡ d S r   )r   Zdouble_clickr   r
   r
   r   Údouble_click_element1  s    	rP   zSlow click '{selector}'zSlow click "{selector}"zSlow click element '{selector}'zSlow click element "{selector}"zUser slow clicks '{selector}'zUser slow clicks "{selector}"z%User slow clicks element '{selector}'z%User slow clicks element "{selector}"c                 C   s   | j }| |¡ d S r   )r   Z
slow_clickr   r
   r
   r   Úslow_click_element>  s    	rQ   zClear text field '{selector}'zClear text field "{selector}"zClear text in '{selector}'zClear text in "{selector}"z#User clears text field '{selector}'z#User clears text field "{selector}"z User clears text in '{selector}'z User clears text in "{selector}"c                 C   s   | j }| |¡ d S r   )r   Úclearr   r
   r
   r   Úclear_text_fieldK  s    	rS   zMaximize windowzMaximize the windowzUser maximizes windowzUser maximizes the windowc                 C   s   | j }| ¡  d S r   )r   Úmaximize_windowr.   r
   r
   r   rT   X  s    rT   zGet new driverzUser gets new driverc                 C   s   | j }| ¡  d S r   )r   Úget_new_driverr.   r
   r
   r   rU   a  s    rU   zSwitch to default driverzUser switches to default driverc                 C   s   | j }| ¡  d S r   )r   Úswitch_to_default_driverr.   r
   r
   r   rV   h  s    rV   zPress up arrowzUser presses up arrowc                 C   s   | j }| ¡  d S r   )r   Úpress_up_arrowr.   r
   r
   r   rW   o  s    rW   zPress down arrowzUser presses down arrowc                 C   s   | j }| ¡  d S r   )r   Úpress_down_arrowr.   r
   r
   r   rX   v  s    rX   zPress left arrowzUser presses left arrowc                 C   s   | j }| ¡  d S r   )r   Úpress_left_arrowr.   r
   r
   r   rY   }  s    rY   zPress right arrowzUser presses right arrowc                 C   s   | j }| ¡  d S r   )r   Úpress_right_arrowr.   r
   r
   r   rZ   „  s    rZ   zClear all cookieszDelete all cookieszUser clears all cookieszUser deletes all cookiesc                 C   s   | j }| ¡  d S r   )r   Údelete_all_cookiesr.   r
   r
   r   r[   ‹  s    r[   zClear Local StoragezDelete Local StoragezUser clears Local StoragezUser deletes Local Storagec                 C   s   | j }| ¡  d S r   )r   Úclear_local_storager.   r
   r
   r   r\   ”  s    r\   zClear Session StoragezDelete Session StoragezUser clears Session StoragezUser deletes Session Storagec                 C   s   | j }| ¡  d S r   )r   Úclear_session_storager.   r
   r
   r   r]   �  s    r]   zJS click all '{selector}'zJS click all "{selector}"z Use JS to click all '{selector}'z Use JS to click all "{selector}"c                 C   s   | j }| |¡ d S r   )r   Újs_click_allr   r
   r
   r   r^   ¦  s    r^   z!Click '{selector}' at ({px},{py})z!Click "{selector}" at ({px},{py})z"Click '{selector}' at ({px}, {py})z"Click "{selector}" at ({px}, {py})z'User clicks '{selector}' at ({px},{py})z'User clicks "{selector}" at ({px},{py})z(User clicks '{selector}' at ({px}, {py})z(User clicks "{selector}" at ({px}, {py})c                 C   s   | j }| |||¡ d S r   )r   Úclick_with_offset)r   r   ZpxÚpyr   r
   r
   r   r_   ¯  s    	r_   z)In '{selector}' choose file '{file_path}'z)In "{selector}" choose file "{file_path}"z)In '{selector}' choose file "{file_path}"z)In "{selector}" choose file '{file_path}'z+Into '{selector}' choose file '{file_path}'z+Into "{selector}" choose file "{file_path}"z+Into '{selector}' choose file "{file_path}"z+Into "{selector}" choose file '{file_path}'z0User chooses file '{file_path}' for '{selector}'z1User chooses file "{file_path}" for "{selector}" z1User chooses file "{file_path}" for '{selector}' z1User chooses file '{file_path}' for "{selector}" c                 C   s   | j }| ||¡ d S r   )r   Úchoose_file)r   r   Ú	file_pathr   r
   r
   r   ra   ¼  s    ra   zSet content to frame '{frame}'zSet content to frame "{frame}"z$User sets content to frame '{frame}'z$User sets content to frame "{frame}"c                 C   s   | j }| |¡ d S r   )r   Úset_content_to_framer4   r
   r
   r   rc   Í  s    rc   zSet content to defaultzUser sets content to defaultc                 C   s   | j }| ¡  d S r   )r   Úset_content_to_defaultr.   r
   r
   r   rd   Ö  s    rd   zSet content to parentzUser sets content to parentc                 C   s   | j }| ¡  d S r   )r   Úset_content_to_parentr.   r
   r
   r   re   Ý  s    re   z#Assert element present '{selector}'z#Assert element present "{selector}"z&Element '{selector}' should be presentz&Element "{selector}" should be presentc                 C   s   | j }| |¡ d S r   )r   Úassert_element_presentr   r
   r
   r   rf   ä  s    rf   z'Assert element not visible '{selector}'z'Assert element not visible "{selector}"z*Element '{selector}' should not be visiblez*Element "{selector}" should not be visiblec                 C   s   | j }| |¡ d S r   )r   Úassert_element_not_visibler   r
   r
   r   rg   í  s    rg   zAssert link text '{text}'zAssert link text "{text}"z$Link text '{text}' should be visiblez$Link text "{text}" should be visiblec                 C   s   | j }t|ƒ}| |¡ d S r   )r   r   Úassert_link_textr    r
   r
   r   rh   ö  s    rh   zAssert title '{title}'zAssert title "{title}"zThe title should be '{title}'zThe title should be "{title}"c                 C   s   | j }t|ƒ}| |¡ d S r   )r   r   Úassert_title)r   Útitler   r
   r
   r   ri      s    ri   zAssert downloaded file '{file}'zAssert downloaded file "{file}"z$File '{file}' should be in downloadsz$File "{file}" should be in downloadsc                 C   s   | j }| |¡ d S r   )r   Úassert_downloaded_file©r   Úfiler   r
   r
   r   rk   
  s    rk   zDownload '{file}' to downloadszDownload "{file}" to downloadsz#Download file '{file}' to downloadsz#Download file "{file}" to downloadsz$User downloads '{file}' to downloadsz$User downloads "{file}" to downloadsc                 C   s   | j }| |¡ d S r   ©r   Údownload_filerl   r
   r
   r   ro     s    ro   z$Download '{file}' to '{destination}'z$Download "{file}" to "{destination}"z)Download file '{file}' to '{destination}'z)Download file "{file}" to "{destination}"z*User downloads '{file}' to '{destination}'z*User downloads "{file}" to "{destination}"c                 C   s   | j }| ||¡ d S r   rn   )r   rm   Zdestinationr   r
   r
   r   Údownload_file_to_destination  s    rp   z.In '{selector}' assert attribute '{attribute}'z.In "{selector}" assert attribute "{attribute}"z.In "{selector}" assert attribute '{attribute}'z.In '{selector}' assert attribute "{attribute}"c                 C   s   | j }| ||¡ d S r   )r   Úassert_attribute)r   r   Ú	attributer   r
   r
   r   rq   )  s    rq   z>In '{selector}' assert attribute/value '{attribute}'/'{value}'z>In "{selector}" assert attribute/value "{attribute}"/"{value}"z>In "{selector}" assert attribute/value '{attribute}'/"{value}"z>In '{selector}' assert attribute/value "{attribute}"/'{value}'z>In '{selector}' assert attribute/value '{attribute}'/"{value}"z>In "{selector}" assert attribute/value "{attribute}"/'{value}'z>In "{selector}" assert attribute/value '{attribute}'/'{value}'z>In '{selector}' assert attribute/value "{attribute}"/"{value}"c                 C   s    | j }t|ƒ}| |||¡ d S r   )r   r   rq   ©r   r   rr   rD   r   r
   r
   r   Úassert_attribute_has_value2  s    	rt   zShow file chooserszShow hidden file chooserszUse JS to show file choosersz#Use JS to show hidden file choosersc                 C   s   | j }| ¡  d S r   )r   Úshow_file_choosersr.   r
   r
   r   ru   @  s    ru   zSleep for {seconds} secondszWait for {seconds} secondsz!User sleeps for {seconds} secondsz User waits for {seconds} secondsc                 C   s   | j }| t|ƒ¡ d S r   )r   ÚsleepÚfloat)r   Úsecondsr   r
   r
   r   rv   I  s    rv   zActivate Demo ModezUser activates Demo Modec                 C   s   | j }| ¡  d S r   )r   Úactivate_demo_moder.   r
   r
   r   ry   R  s    ry   zDeactivate Demo ModezUser deactivates Demo Modec                 C   s   | j }| ¡  d S r   )r   Údeactivate_demo_moder.   r
   r
   r   rz   Y  s    rz   z$Deferred assert element '{selector}'z$Deferred assert element "{selector}"c                 C   s   | j }| |¡ d S r   )r   Údeferred_assert_elementr   r
   r
   r   r{   `  s    r{   z,Deferred assert element present '{selector}'z,Deferred assert element present "{selector}"c                 C   s   | j }| |¡ d S r   )r   Údeferred_assert_element_presentr   r
   r
   r   r|   g  s    r|   z-Deferred assert text '{text}' in '{selector}'z-Deferred assert text "{text}" in "{selector}"z-Deferred assert text '{text}' in "{selector}"z-Deferred assert text "{text}" in '{selector}'c                 C   s   | j }t|ƒ}| ||¡ d S r   ©r   r   Údeferred_assert_textr   r
   r
   r   Údeferred_assert_text_in_elementn  s    r   zDeferred assert text '{text}'zDeferred assert text "{text}"c                 C   s   | j }t|ƒ}| |¡ d S r   r}   r    r
   r
   r   r~   x  s    r~   z3Deferred assert exact text '{text}' in '{selector}'z3Deferred assert exact text "{text}" in "{selector}"z3Deferred assert exact text '{text}' in "{selector}"z3Deferred assert exact text "{text}" in '{selector}'c                 C   s   | j }t|ƒ}| ||¡ d S r   )r   r   Údeferred_assert_exact_textr   r
   r
   r   r€   €  s    r€   z.Deferred assert non-empty text in '{selector}'z.Deferred assert non-empty text in "{selector}"c                 C   s   | j }| |¡ d S r   )r   Údeferred_assert_non_empty_textr   r
   r
   r   r�   Š  s    r�   zProcess deferred assertsc                 C   s   | j }| ¡  d S r   )r   Úprocess_deferred_assertsr.   r
   r
   r   r‚   ‘  s    r‚   z0Assert text not visible '{text}' in '{selector}'z0Assert text not visible "{text}" in "{selector}"z0Assert text not visible '{text}' in "{selector}"z0Assert text not visible "{text}" in '{selector}'z3Text '{text}' should not be visible in '{selector}'z3Text "{text}" should not be visible in "{selector}"z3Text '{text}' should not be visible in "{selector}"z3Text "{text}" should not be visible in '{selector}'c                 C   s   | j }t|ƒ}| ||¡ d S r   ©r   r   Úassert_text_not_visibler   r
   r
   r   Ú"assert_text_not_visible_in_element—  s    	r…   z Assert text not visible '{text}'z Assert text not visible "{text}"z#Text '{text}' should not be visiblez#Text "{text}" should not be visiblec                 C   s   | j }t|ƒ}| |¡ d S r   rƒ   r    r
   r
   r   r„   ¥  s    r„   z6Assert exact text not visible '{text}' in '{selector}'z6Assert exact text not visible "{text}" in "{selector}"z6Assert exact text not visible '{text}' in "{selector}"z6Assert exact text not visible "{text}" in '{selector}'z9Exact text '{text}' should not be visible in '{selector}'z9Exact text "{text}" should not be visible in "{selector}"z9Exact text '{text}' should not be visible in "{selector}"z9Exact text "{text}" should not be visible in '{selector}'c                 C   s   | j }t|ƒ}| ||¡ d S r   ©r   r   Úassert_exact_text_not_visibler   r
   r
   r   Ú(assert_exact_text_not_visible_in_element¯  s    	rˆ   z&Assert exact text not visible '{text}'z&Assert exact text not visible "{text}"z)Exact text '{text}' should not be visiblez)Exact text "{text}" should not be visiblec                 C   s   | j }t|ƒ}| |¡ d S r   r†   r    r
   r
   r   r‡   ½  s    r‡   z#Assert title contains '{substring}'z#Assert title contains "{substring}"z&The title should contain '{substring}'z&The title should contain "{substring}"c                 C   s   | j }t|ƒ}| |¡ d S r   )r   r   Úassert_title_contains©r   Z	substringr   r
   r
   r   r‰   Ç  s    r‰   zOpen new tabzOpen new windowzUser opens new tabzUser opens new windowc                 C   s   | j }| ¡  d S r   )r   Úopen_new_windowr.   r
   r
   r   r‹   Ñ  s    r‹   zAccept alertzUser accepts alertc                 C   s   | j }| ¡  d S r   )r   Úaccept_alertr.   r
   r
   r   rŒ   Ú  s    rŒ   zDismiss alertzUser dismisses alertc                 C   s   | j }| ¡  d S r   )r   Údismiss_alertr.   r
   r
   r   r�   á  s    r�   zAssert URL '{url}'zAssert URL "{url}"zThe URL should be '{url}'zThe URL should be "{url}"c                 C   s   | j }t|ƒ}| |¡ d S r   )r   r   Ú
assert_urlr   r
   r
   r   rŽ   è  s    rŽ   z!Assert URL contains '{substring}'z!Assert URL contains "{substring}"z$The URL should contain '{substring}'z$The URL should contain "{substring}"c                 C   s   | j }t|ƒ}| |¡ d S r   )r   r   Úassert_url_containsrŠ   r
   r
   r   r�   ò  s    r�   zHover '{selector}'zHover "{selector}"zHover over '{selector}'zHover over "{selector}"zHover element '{selector}'zHover element "{selector}"zUser hovers over '{selector}'zUser hovers over "{selector}"z%User hovers over element '{selector}'z%User hovers over element "{selector}"c                 C   s   | j }| |¡ d S r   )r   Úhoverr   r
   r
   r   r�   ü  s    r�   zContext click '{selector}'zContext click "{selector}"z"Context click element '{selector}'z"Context click element "{selector}"zRight click '{selector}'zRight click "{selector}"z Right click element '{selector}'z Right click element "{selector}"zUser right clicks '{selector}'zUser right clicks "{selector}"z&User right clicks element '{selector}'z&User right clicks element "{selector}"c                 C   s   | j }| |¡ d S r   )r   Úcontext_clickr   r
   r
   r   r‘     s    r‘   z JS type '{text}' in '{selector}'z JS type "{text}" in "{selector}"z JS type '{text}' in "{selector}"z JS type "{text}" in '{selector}'z"JS type '{text}' into '{selector}'z"JS type "{text}" into "{selector}"z"JS type '{text}' into "{selector}"z"JS type "{text}" into '{selector}'z%JS type text '{text}' in '{selector}'z%JS type text "{text}" in "{selector}"z%JS type text '{text}' in "{selector}"z%JS type text "{text}" in '{selector}'z'JS type text '{text}' into '{selector}'z'JS type text "{text}" into "{selector}"z'JS type text '{text}' into "{selector}"z'JS type text "{text}" into '{selector}'z'Use JS to type '{text}' in '{selector}'z'Use JS to type "{text}" in "{selector}"z'Use JS to type '{text}' in "{selector}"z'Use JS to type "{text}" in '{selector}'z)Use JS to type '{text}' into '{selector}'z)Use JS to type "{text}" into "{selector}"z)Use JS to type '{text}' into "{selector}"z)Use JS to type "{text}" into '{selector}'c                 C   s   | j }t|ƒ}| ||¡ d S r   )r   r   Újs_typer   r
   r
   r   r’     s    r’   zjQuery click '{selector}'zjQuery click "{selector}"z!jQuery click element '{selector}'z!jQuery click element "{selector}"z Use jQuery to click '{selector}'z Use jQuery to click "{selector}"c                 C   s   | j }| |¡ d S r   )r   Újquery_clickr   r
   r
   r   r“   :  s    r“   zjQuery click all '{selector}'zjQuery click all "{selector}"z$Use jQuery to click all '{selector}'z$Use jQuery to click all "{selector}"c                 C   s   | j }| |¡ d S r   )r   Újquery_click_allr   r
   r
   r   r”   E  s    r”   z$jQuery type '{text}' in '{selector}'z$jQuery type "{text}" in "{selector}"z$jQuery type '{text}' in "{selector}"z$jQuery type "{text}" in '{selector}'z&jQuery type '{text}' into '{selector}'z&jQuery type "{text}" into "{selector}"z&jQuery type '{text}' into "{selector}"z&jQuery type "{text}" into '{selector}'z)jQuery type text '{text}' in '{selector}'z)jQuery type text "{text}" in "{selector}"z)jQuery type text '{text}' in "{selector}"z)jQuery type text "{text}" in '{selector}'z+jQuery type text '{text}' into '{selector}'z+jQuery type text "{text}" into "{selector}"z+jQuery type text '{text}' into "{selector}"z+jQuery type text "{text}" into '{selector}'z+Use jQuery to type '{text}' in '{selector}'z+Use jQuery to type "{text}" in "{selector}"z+Use jQuery to type '{text}' in "{selector}"z+Use jQuery to type "{text}" in '{selector}'z-Use jQuery to type '{text}' into '{selector}'z-Use jQuery to type "{text}" into "{selector}"z-Use jQuery to type '{text}' into "{selector}"z-Use jQuery to type "{text}" into '{selector}'c                 C   s   | j }t|ƒ}| ||¡ d S r   )r   r   Újquery_typer   r
   r
   r   r•   N  s    r•   z#Press keys '{text}' in '{selector}'z#Press keys "{text}" in "{selector}"z#Press keys '{text}' in "{selector}"z#Press keys "{text}" in '{selector}'z%Press keys '{text}' into '{selector}'z%Press keys "{text}" into "{selector}"z%Press keys '{text}' into "{selector}"z%Press keys "{text}" into '{selector}'z#In '{selector}' press keys '{text}'z#In "{selector}" press keys "{text}"z#In '{selector}' press keys "{text}"z#In "{selector}" press keys '{text}'z%Into '{selector}' press keys '{text}'z%Into "{selector}" press keys "{text}"z%Into '{selector}' press keys "{text}"z%Into "{selector}" press keys '{text}'z)Find '{selector}' and press keys '{text}'z)Find "{selector}" and press keys "{text}"z)Find '{selector}' and press keys "{text}"z)Find "{selector}" and press keys '{text}'z*User presses keys '{text}' in '{selector}'z*User presses keys "{text}" in "{selector}"z*User presses keys '{text}' in "{selector}"z*User presses keys "{text}" in '{selector}'z,User presses keys '{text}' into '{selector}'z,User presses keys "{text}" into "{selector}"z,User presses keys '{text}' into "{selector}"z,User presses keys "{text}" into '{selector}'c                 C   s   | j }t|ƒ}| ||¡ d S r   )r   r   Ú
press_keysr   r
   r
   r   r–   l  s    r–   z2Find '{selector}' and set {attribute} to '{value}'z2Find "{selector}" and set {attribute} to "{value}"z2Find '{selector}' and set {attribute} to "{value}"z2Find "{selector}" and set {attribute} to '{value}'c                 C   s`   | j }t|ƒ}| d¡s"| d¡r.|dd … }| d¡sB| d¡rN|d d… }| |||¡ d S ©Nr   r   rA   rB   )r   r   rE   rF   Úset_attributers   r
   r
   r   r˜   Ž  s    r˜   z6Find all '{selector}' and set {attribute} to '{value}'z6Find all "{selector}" and set {attribute} to "{value}"z6Find all '{selector}' and set {attribute} to "{value}"z6Find all "{selector}" and set {attribute} to '{value}'c                 C   s`   | j }t|ƒ}| d¡s"| d¡r.|dd … }| d¡sB| d¡rN|d d… }| |||¡ d S r—   )r   r   rE   rF   Úset_attributesrs   r
   r
   r   r™   œ  s    r™   zSave as PDF to logszSave as PDF to the logszUser saves page as PDF to logsz"User saves page as PDF to the logsc                 C   s   | j }| ¡  d S r   )r   Úsave_as_pdf_to_logsr.   r
   r
   r   rš   ª  s    rš   zSave page source to logsz Save the page source to the logszUser saves page source to logsz&User saves the page source to the logsc                 C   s   | j }| ¡  d S r   )r   Úsave_page_source_to_logsr.   r
   r
   r   r›   ³  s    r›   zActivate CDP ModezUser activates CDP Modec                 C   s   | j }| ¡  d S r   )r   Úactivate_cdp_moder.   r
   r
   r   rœ   ¼  s    rœ   N)eZbehaver   r   r   r   r   r   r   r   r   r!   r"   r$   r%   r'   r*   r,   r-   r/   r0   r1   r2   r3   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rI   rJ   rM   rN   rO   rL   rP   rQ   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   ra   rc   rd   re   rf   rg   rh   ri   rk   ro   rp   rq   rt   ru   rv   ry   rz   r{   r|   r   r~   r€   r�   r‚   r…   r„   rˆ   r‡   r‰   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r˜   r™   rš   r›   rœ   r
   r
   r
   r   Ú<module>   s    PH4$,,,$ $<<D

