o
    è¡¡iî  ã                   @   sR   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)ÚDesiredCapabilities)Ú
ArgOptions)Ú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   ús/var/www/html/asbeauty/laura_geller_scraping/env/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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B eB fdd„ZededB fdd„ƒZejdeeB ddfdd„ƒZ	ddedB 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__c                 C   ó   | j S )z#Returns the location of the binary.)r   r   r   r   r   Úbinary_location0   ó   zOptions.binary_locationÚvaluec                 C   s   t |tƒs
t| jƒ‚|| _dS )z2Sets the location of the browser binary by string.N)Ú
isinstanceÚstrÚ	TypeErrorÚBINARY_LOCATION_ERRORr   )r   r#   r   r   r   r!   5   s   


c                 C   r    )zReturns a dict of preferences.©r   r   r   r   r   Úpreferences<   r"   zOptions.preferencesÚnamec                 C   s   || j |< dS )zSets a preference.Nr(   )r   r*   r#   r   r   r   Úset_preferenceA   s   zOptions.set_preferencec                 C   r    )z#Returns the Firefox profile to use.)r   r   r   r   r   ÚprofileE   r"   zOptions.profileÚnew_profilec                 C   s   t |tƒs	t|ƒ}|| _dS )zQSet the location of the browser profile to use (string or FirefoxProfile object).N)r$   r   r   )r   r-   r   r   r   r,   J   s   

úorg.mozilla.firefoxÚandroid_packagec                    s   t ƒ  |||¡ d S r   )r   Úenable_mobile)r   r/   Úandroid_activityÚdevice_serialr   r   r   r0   Q   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.ÚbinaryÚprefsr,   Úargs)Ú_capsr   r   r   ÚencodedÚ
_argumentsÚmobile_optionsÚupdater   r   r   ÚKEY)r   ÚcapsÚoptsr   r   r   r   V   s    



zOptions.to_capabilitiesc                 C   s
   t j ¡ S r   )r   ÚFIREFOXÚcopyr   r   r   r   Údefault_capabilitiesq   s   
zOptions.default_capabilitiesr   )r.   NN)r   r   r   r;   r   Úpropertyr%   r!   Úsetterr   r)   ÚintÚboolr+   r   r,   r0   r   r@   Ú__classcell__r   r   r   r   r   #   s*    
ÿÿr   N)
Útypingr   Ú.selenium.webdriver.common.desired_capabilitiesr   Ú!selenium.webdriver.common.optionsr   Ú*selenium.webdriver.firefox.firefox_profiler   r   r   r   r   r   r   Ú<module>   s   
