o
    é\hí  ã                   @   sv   d dl mZmZmZmZ d dl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„ dƒZG d	d
„ d
e
ƒZdS )é    )ÚAnyÚDictÚOptionalÚUnion)Ú
deprecated)ÚDesiredCapabilities)Ú
ArgOptions)ÚFirefoxBinary)ÚFirefoxProfilec                   @   s$   e Zd Zddd„Zdefdd„ZdS )ÚLogÚreturnNc                 C   s
   d | _ d S ©N©Úlevel©Úself© r   úe/home/air/segue/gemini/backup/venv/lib/python3.10/site-packages/selenium/webdriver/firefox/options.pyÚ__init__   s   
zLog.__init__c                 C   s   | j r
dd| j iiS i S )NÚlogr   r   r   r   r   r   Úto_capabilities   s   zLog.to_capabilities©r   N)Ú__name__Ú
__module__Ú__qualname__r   Údictr   r   r   r   r   r      s    
r   c                       s,  e Zd ZdZd ‡ fdd„Zeedƒdefdd„ƒƒZej	edƒd	e
eef ddfd
d„ƒƒZedefdd„ƒZej	deddfdd„ƒZedefdd„ƒZdede
eeef fdd„Zedee fdd„ƒZej	de
eef ddfdd„ƒZ	d!dee f‡ fdd„Zdefdd„Zedefdd„ƒZ‡  ZS )"ÚOptionszmoz:firefoxOptionsr   Nc                    s2   t ƒ  ¡  d| _i | _d| jd< d | _tƒ | _d S )NÚ é   zremote.active-protocols)Úsuperr   Ú_binary_locationÚ_preferencesÚ_profiler   r   r   ©Ú	__class__r   r   r   (   s   

zOptions.__init__zuse binary_location insteadc                 C   s
   t | jƒS )z#Returns the FirefoxBinary instance.)r	   r    r   r   r   r   Úbinary2   s   
zOptions.binaryÚ
new_binaryc                 C   s   t |tƒr|j}t|ƒ| _dS )z\Sets location of the browser binary, either by string or
        ``FirefoxBinary`` instance.N)Ú
isinstancer	   Ú
_start_cmdÚstrÚbinary_location)r   r&   r   r   r   r%   8   s   
c                 C   ó   | j S )z%:Returns: The location of the binary.)r    r   r   r   r   r*   A   ó   zOptions.binary_locationÚvaluec                 C   s   t |tƒs
t| jƒ‚|| _dS )z2Sets the location of the browser binary by string.N)r'   r)   Ú	TypeErrorÚBINARY_LOCATION_ERRORr    )r   r-   r   r   r   r*   F   s   


c                 C   r+   )z :Returns: A dict of preferences.©r!   r   r   r   r   ÚpreferencesM   r,   zOptions.preferencesÚnamec                 C   s   || j |< dS )zSets a preference.Nr0   )r   r2   r-   r   r   r   Úset_preferenceR   s   zOptions.set_preferencec                 C   r+   )z%:Returns: The Firefox profile to use.)r"   r   r   r   r   ÚprofileV   r,   zOptions.profileÚnew_profilec                 C   s   t |tƒs	t|ƒ}|| _dS )z\Sets location of the browser profile to use, either by string or
        ``FirefoxProfile``.N)r'   r
   r"   )r   r5   r   r   r   r4   [   s   

úorg.mozilla.firefoxÚandroid_packagec                    s   t ƒ  |||¡ d S r   )r   Úenable_mobile)r   r7   Úandroid_activityÚdevice_serialr#   r   r   r8   c   s   zOptions.enable_mobilec                 C   s€   | j }i }| jr| j|d< | jr| j|d< | jr| jj|d< | jr&| j|d< | jr/| | j¡ | | j 	¡ ¡ |r>||t
j< |S )z>Marshals the Firefox options to a `moz:firefoxOptions` object.r%   Úprefsr4   Úargs)Ú_capsr    r!   r"   ÚencodedÚ
_argumentsÚmobile_optionsÚupdater   r   r   ÚKEY)r   ÚcapsÚoptsr   r   r   r   h   s    



zOptions.to_capabilitiesc                 C   s
   t j ¡ S r   )r   ÚFIREFOXÚcopyr   r   r   r   Údefault_capabilitiesƒ   s   
zOptions.default_capabilitiesr   )r6   NN)r   r   r   rB   r   Úpropertyr   r	   r%   Úsetterr   r)   r*   r   r1   ÚintÚboolr3   r   r
   r4   r8   r   rG   Ú__classcell__r   r   r#   r   r   %   s6    
ÿÿr   N)Útypingr   r   r   r   Útyping_extensionsr   Ú.selenium.webdriver.common.desired_capabilitiesr   Ú!selenium.webdriver.common.optionsr   Ú)selenium.webdriver.firefox.firefox_binaryr	   Ú*selenium.webdriver.firefox.firefox_profiler
   r   r   r   r   r   r   Ú<module>   s   
