§
    °õi%4  ã                   ó(  — d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ  G d„ dee¦  «        Z G d	„ d
¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ de¬¦  «        Z G d„ de¦  «        ZdS )é    N)ÚABCMetaÚabstractmethod)ÚEnum)ÚOptional)ÚInvalidArgumentException)ÚProxyc                   ó   — e Zd ZdZdZdZdZdS )ÚPageLoadStrategya†  Enum of possible page load strategies.

    Selenium support following strategies:
        * normal (default) - waits for all resources to download
        * eager - DOM access is ready, but other resources like images may still be loading
        * none - does not block `WebDriver` at all

    Docs: https://www.selenium.dev/documentation/webdriver/drivers/options/#pageloadstrategy.
    ÚnormalÚeagerÚnoneN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   © ó    úm/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/selenium/webdriver/common/options.pyr
   r
      s)   € € € € € ðð ð €FØ€EØ€D€D€Dr   r
   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú_BaseOptionsDescriptorc                 ó   — || _         d S ©N©Úname©Úselfr   s     r   Ú__init__z_BaseOptionsDescriptor.__init__,   ó   € ØˆŒ	ˆ	ˆ	r   c                 ó”  — | j         dk    r3|j                             d¦  «        }|du pt          |t          ¦  «        S | j         dk    r8|j                             | j         ¦  «        }t          |t          ¦  «        sd n|S | j         dv r |j                             | j         d¦  «        S |j                             | j         ¦  «        S )NÚ
enableBidiÚwebSocketUrlT)ÚacceptInsecureCertsÚstrictFileInteractabilityÚsetWindowRectúse:downloadsEnabledF)r   Ú_capsÚgetÚ
isinstanceÚstr)r   ÚobjÚclsÚvalues       r   Ú__get__z_BaseOptionsDescriptor.__get__/   s²   € ØŒ9˜Ò$Ð$à”I—M’M .Ñ1Ô1ˆEØ˜D�=Ð:¥J¨uµcÑ$:Ô$:Ð:ØŒ9˜Ò&Ð&à”I—M’M $¤)Ñ,Ô,ˆEÝ)¨%µÑ5Ô5Ð@�4�4¸5Ð@ØŒ9ÐtÐtÐtØ”9—=’= ¤¨EÑ2Ô2Ð2ØŒy�}Š}˜TœYÑ'Ô'Ð'r   c                 ó‚   — | j         dk    r|                     d|¦  «         d S |                     | j         |¦  «         d S )Nr    r!   )r   Úset_capability©r   r*   r,   s      r   Ú__set__z_BaseOptionsDescriptor.__set__<   sI   € ØŒ9˜Ò$Ð$Ø×Ò˜~¨uÑ5Ô5Ð5Ð5Ð5à×Ò˜tœy¨%Ñ0Ô0Ð0Ð0Ð0r   N)r   r   r   r   r-   r1   r   r   r   r   r   +   sA   € € € € € ðð ð ð(ð (ð (ð1ð 1ð 1ð 1ð 1r   r   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_PageLoadStrategyDescriptorzâDetermines the point at which a navigation command is returned:
    https://w3c.github.io/webdriver/#dfn-table-of-page-load-strategies.

    Args:
        strategy: the strategy corresponding to a document readiness state
    c                 ó   — || _         d S r   r   r   s     r   r   z$_PageLoadStrategyDescriptor.__init__K   r   r   c                 ó@   — |j                              | j        ¦  «        S r   ©r&   r'   r   ©r   r*   r+   s      r   r-   z#_PageLoadStrategyDescriptor.__get__N   ó   € ØŒy�}Š}˜TœYÑ'Ô'Ð'r   c                 ób   — |dv r|                      | j        |¦  «         d S t          d¦  «        ‚)N)r   r   r   z>Strategy can only be one of the following: normal, eager, none©r/   r   Ú
ValueErrorr0   s      r   r1   z#_PageLoadStrategyDescriptor.__set__Q   s;   € ØÐ/Ð/Ð/Ø×Ò˜tœy¨%Ñ0Ô0Ð0Ð0Ð0åÐ]Ñ^Ô^Ð^r   N©r   r   r   r   r   r-   r1   r   r   r   r3   r3   C   sP   € € € € € ðð ðð ð ð(ð (ð (ð_ð _ð _ð _ð _r   r3   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú"_UnHandledPromptBehaviorDescriptorar  How the driver should respond when an alert is present and the:
    command sent is not handling the alert:
    https://w3c.github.io/webdriver/#dfn-table-of-page-load-strategies:

    Args:
        behavior: behavior to use when an alert is encountered

    Returns:
        Values for implicit timeout, pageLoad timeout and script timeout if set (in milliseconds)
    c                 ó   — || _         d S r   r   r   s     r   r   z+_UnHandledPromptBehaviorDescriptor.__init__d   r   r   c                 ó@   — |j                              | j        ¦  «        S r   r6   r7   s      r   r-   z*_UnHandledPromptBehaviorDescriptor.__get__g   r8   r   c                 ób   — |dv r|                      | j        |¦  «         d S t          d¦  «        ‚)N)ÚdismissÚacceptzdismiss and notifyzaccept and notifyÚignoreziBehavior can only be one of the following: dismiss, accept, dismiss and notify, accept and notify, ignorer:   r0   s      r   r1   z*_UnHandledPromptBehaviorDescriptor.__set__j   sC   € ØÐ^Ð^Ð^Ø×Ò˜tœy¨%Ñ0Ô0Ð0Ð0Ð0åð,ñô ð r   Nr<   r   r   r   r>   r>   X   sK   € € € € € ð	ð 	ðð ð ð(ð (ð (ðð ð ð ð r   r>   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_TimeoutsDescriptoraZ  How long the driver should wait for actions to complete before:
    returning an error https://w3c.github.io/webdriver/#timeouts:

    Args:
        timeouts: values in milliseconds for implicit wait, page load and script timeout

    Returns:
        Values for implicit timeout, pageLoad timeout and script timeout if set (in milliseconds)
    c                 ó   — || _         d S r   r   r   s     r   r   z_TimeoutsDescriptor.__init__   r   r   c                 ó@   — |j                              | j        ¦  «        S r   r6   r7   s      r   r-   z_TimeoutsDescriptor.__get__‚   r8   r   c                 ó°   — t          d„ |                     ¦   «         D ¦   «         ¦  «        r|                     | j        |¦  «         d S t	          d¦  «        ‚)Nc              3   ó   K  — | ]}|d v V — Œ	dS ))ÚimplicitÚpageLoadÚscriptNr   )Ú.0Úxs     r   ú	<genexpr>z._TimeoutsDescriptor.__set__.<locals>.<genexpr>†   s(   è è € ÐMÐM¸1ˆqÐ6Ð6ÐMÐMÐMÐMÐMÐMr   zITimeout keys can only be one of the following: implicit, pageLoad, script)ÚallÚkeysr/   r   r;   r0   s      r   r1   z_TimeoutsDescriptor.__set__…   sW   € ÝÐMÐMÀÇ
Â
ÁÄÐMÑMÔMÑMÔMð 	jØ×Ò˜tœy¨%Ñ0Ô0Ð0Ð0Ð0åÐhÑiÔiÐir   Nr<   r   r   r   rF   rF   t   sP   € € € € € ðð ðð ð ð(ð (ð (ðjð jð jð jð jr   rF   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_ProxyDescriptorz8
    Returns:
        Proxy if set, otherwise None.
    c                 ó   — || _         d S r   r   r   s     r   r   z_ProxyDescriptor.__init__’   r   r   c                 ó   — |j         S r   )Ú_proxyr7   s      r   r-   z_ProxyDescriptor.__get__•   s
   € ØŒzÐr   c                 óž   — t          |t          ¦  «        st          d¦  «        ‚||_        |                     ¦   «         |j        | j        <   d S )Nz$Only Proxy objects can be passed in.)r(   r   r   rW   Úto_capabilitiesr&   r   r0   s      r   r1   z_ProxyDescriptor.__set__˜   sK   € Ý˜%¥Ñ'Ô'ð 	SÝ*Ð+QÑRÔRÐRØˆŒ
Ø$×4Ò4Ñ6Ô6ˆŒ	�$”)ÑÐÐr   Nr<   r   r   r   rT   rT   Œ   sK   € € € € € ðð ð
ð ð ðð ð ð7ð 7ð 7ð 7ð 7r   rT   c            	       óê  ‡ — e Zd ZdZ ed¦  «        Z	  ed¦  «        Z	  ed¦  «        Z	  ed¦  «        Z	  ed¦  «        Z		  ed¦  «        Z
	  ed¦  «        Z	  ed	¦  «        Z	  ed
¦  «        Z	  ed¦  «        Z	  ed¦  «        Z	  ed¦  «        Z	 dˆ fd„Zed„ ¦   «         Zdd„Z	 	 	 ddee         dee         dee         ddfd„Zed„ ¦   «         Zeed„ ¦   «         ¦   «         Zdd„Zˆ xZ S )ÚBaseOptionsz*Base class for individual browser options.ÚbrowserVersionÚplatformNamer"   r#   r$   r    ÚpageLoadStrategyÚunhandledPromptBehaviorÚtimeoutsÚproxyr%   r!   ÚreturnNc                 óÊ   •— t          ¦   «                              ¦   «          | j        | _        d | _        |                      dt          j        ¦  «         d | _        d| _	        d S )Nr^   F)
Úsuperr   Údefault_capabilitiesr&   rW   r/   r
   r   Úmobile_optionsÚ_ignore_local_proxy©r   Ú	__class__s    €r   r   zBaseOptions.__init__¬  s[   ø€ Ý‰Œ×ÒÑÔÐØÔ.ˆŒ
ØˆŒØ×ÒÐ.Õ0@Ô0GÑHÔHÐHØ8<ˆÔØ#(ˆÔ Ð Ð r   c                 ó   — | j         S r   ©r&   ©r   s    r   ÚcapabilitieszBaseOptions.capabilities´  s
   € àŒzÐr   c                 ó   — || j         |<   dS )zSets a capability.Nrk   )r   r   r,   s      r   r/   zBaseOptions.set_capability¸  s   € à ˆŒ
�4ÑÐÐr   Úandroid_packageÚandroid_activityÚdevice_serialc                 ón   — |st          d¦  «        ‚d|i| _        |r
|| j        d<   |r|| j        d<   dS dS )a	  Enables mobile browser use for browsers that support it.

        Args:
            android_package: The name of the android package to start
            android_activity: The name of the android activity
            device_serial: The device serial number
        z!android_package must be passed inÚandroidPackageÚandroidActivityÚandroidDeviceSerialN)ÚAttributeErrorrf   )r   ro   rp   rq   s       r   Úenable_mobilezBaseOptions.enable_mobile¼  si   € ð ð 	FÝ Ð!DÑEÔEÐEØ/°ÐAˆÔØð 	FØ5EˆDÔÐ 1Ñ2Øð 	GØ9FˆDÔÐ 5Ñ6Ð6Ð6ð	Gð 	Gr   c                 ó   — dS )z-Convert options into capabilities dictionary.Nr   rl   s    r   rY   zBaseOptions.to_capabilitiesÑ  ó   € € € r   c                 ó   — dS )z6Return minimal capabilities necessary as a dictionary.Nr   rl   s    r   re   z BaseOptions.default_capabilitiesÕ  ry   r   c                 ó   — d| _         dS )úaBy calling this you will ignore HTTP_PROXY and HTTPS_PROXY from
        being picked up and used.TN)rg   rl   s    r   Ú(ignore_local_proxy_environment_variablesz4BaseOptions.ignore_local_proxy_environment_variablesÚ  s   € ð $(ˆÔ Ð Ð r   ©rb   N)NNN)!r   r   r   r   r   Úbrowser_versionÚplatform_nameÚaccept_insecure_certsÚstrict_file_interactabilityÚset_window_rectÚenable_bidir3   Úpage_load_strategyr>   Úunhandled_prompt_behaviorrF   r`   rT   ra   Úenable_downloadsÚweb_socket_urlr   Úpropertyrm   r/   r   r)   rw   r   rY   re   r}   Ú__classcell__©ri   s   @r   r[   r[   Ÿ   sF  ø€ € € € € Ø4Ð4à,Ð,Ð-=Ñ>Ô>€Oðð* +Ð*¨>Ñ:Ô:€Mðð* 3Ð2Ð3HÑIÔIÐðð* #9Ð"8Ð9TÑ"UÔ"UÐðð* -Ð,¨_Ñ=Ô=€Oðð* )Ð(¨Ñ6Ô6€Kðð* 5Ð4Ð5GÑHÔHÐðð* !CÐ BÐC\Ñ ]Ô ]Ððð, #Ð" :Ñ.Ô.€Hðð, Ð˜WÑ%Ô%€Eðð* .Ð-Ð.CÑDÔDÐðð* ,Ð+¨NÑ;Ô;€Nðð*)ð )ð )ð )ð )ð )ð ðð ñ „Xðð!ð !ð !ð !ð *.Ø*.Ø'+ð	Gð Gà! #œðGð # 3œ-ðGð   ”}ð	Gð
 
ðGð Gð Gð Gð* ð<ð <ñ „^ð<ð ØðEð Eñ „^ñ „XðEð(ð (ð (ð (ð (ð (ð (ð (r   r[   )Ú	metaclassc                   óv   ‡ — e Zd ZdZdZdˆ fd„Zed„ ¦   «         Zdeddfd„Z	dˆ fd	„Z
d
„ Zed„ ¦   «         Zˆ xZS )Ú
ArgOptionsz Binary Location Must be a Stringzfedcm:accountsrb   Nc                 óV   •— t          ¦   «                              ¦   «          g | _        d S r   )rd   r   Ú
_argumentsrh   s    €r   r   zArgOptions.__init__å  s$   ø€ Ý‰Œ×ÒÑÔÐØ%'ˆŒˆˆr   c                 ó   — | j         S )zR
        Returns:
            A list of arguments needed for the browser.
        )r�   rl   s    r   Ú	argumentszArgOptions.argumentsé  s   € ð ŒÐr   Úargumentc                 ó\   — |r| j                              |¦  «         dS t          d¦  «        ‚)z^Adds an argument to the list.

        Args:
            argument: Sets the arguments
        zargument can not be nullN)r�   Úappendr;   )r   r“   s     r   Úadd_argumentzArgOptions.add_argumentñ  s7   € ð ð 	9ØŒO×"Ò" 8Ñ,Ô,Ð,Ð,Ð,åÐ7Ñ8Ô8Ð8r   c                 ó€   •— t          j        dt          d¬¦  «         t          ¦   «                              ¦   «          dS )r|   a  using ignore_local_proxy_environment_variables in Options has been deprecated, instead, create a Proxy instance with ProxyType.DIRECT to ignore proxy settings, pass the proxy instance into a ClientConfig constructor, pass the client config instance into the Webdriver constructoré   )Ú
stacklevelN)ÚwarningsÚwarnÚDeprecationWarningrd   r}   rh   s    €r   r}   z3ArgOptions.ignore_local_proxy_environment_variablesü  sJ   ø€ õ 	ŒðMõ Øð	
ñ 	
ô 	
ð 	
õ 	‰Œ×8Ò8Ñ:Ô:Ð:Ð:Ð:r   c                 ó   — | j         S r   rk   rl   s    r   rY   zArgOptions.to_capabilities
  s
   € ØŒzÐr   c                 ó   — i S r   r   rl   s    r   re   zArgOptions.default_capabilities  s   € àˆ	r   r~   )r   r   r   ÚBINARY_LOCATION_ERRORÚFEDCM_CAPABILITYr   r‰   r’   r)   r–   r}   rY   re   rŠ   r‹   s   @r   rŽ   rŽ   à  sÎ   ø€ € € € € Ø>Ðà'Ðð(ð (ð (ð (ð (ð (ð ðð ñ „Xðð	9 Sð 	9¨Tð 	9ð 	9ð 	9ð 	9ð;ð ;ð ;ð ;ð ;ð ;ðð ð ð ðð ñ „Xðð ð ð ð r   rŽ   )rš   Úabcr   r   Úenumr   Útypingr   Úselenium.common.exceptionsr   Úselenium.webdriver.common.proxyr   r)   r
   r   r3   r>   rF   rT   r[   rŽ   r   r   r   ú<module>r¦      sá  ðð$ €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð �s˜Dñ ô ð ð 1ð 1ð 1ð 1ð 1ñ 1ô 1ð 1ð0_ð _ð _ð _ð _ñ _ô _ð _ð*ð ð ð ð ñ ô ð ð8jð jð jð jð jñ jô jð jð07ð 7ð 7ð 7ð 7ñ 7ô 7ð 7ð&~(ð ~(ð ~(ð ~(ð ~(˜Gð ~(ñ ~(ô ~(ð ~(ðB
/ð /ð /ð /ð /�ñ /ô /ð /ð /ð /r   