
    ,h#                         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 d dlmZ d dl	m
Z
 d dlmZ d d	lmZ  G d
 d      Z G d de
      Zy)    )Any)Dict)Optional)Union)
deprecated)DesiredCapabilities)
ArgOptions)FirefoxBinary)FirefoxProfilec                        e Zd ZddZdefdZy)LogreturnNc                     d | _         y Nlevelselfs    d/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/selenium/webdriver/firefox/options.py__init__zLog.__init__   s	    
    c                 >    | j                   rdd| j                   iiS i S )Nlogr   r   r   s    r   to_capabilitieszLog.to_capabilities"   s"    ::GTZZ011	r   r   N)__name__
__module____qualname__r   dictr    r   r   r   r      s     r   r   c                       e Zd ZdZd fdZe ed      defd              Zej                   ed      de
eef   ddfd              Zedefd	       Zej                  d
eddfd       Zedefd       Zded
e
eeef   fdZedee   fd       Zej                  de
eef   ddfd       Z	 ddee   f fdZdefdZedefd       Z xZS )Optionszmoz:firefoxOptionsr   Nc                     t         |           d| _        i | _        d| j                  d<   d | _        t               | _        y )N    zremote.active-protocols)superr   _binary_location_preferences_profiler   r   )r   	__class__s    r   r   zOptions.__init__+   sA     ""$ 8934265r   zuse binary_location insteadc                 ,    t        | j                        S )z#Returns the FirefoxBinary instance.)r
   r'   r   s    r   binaryzOptions.binary5   s     T2233r   
new_binaryc                 \    t        |t              r|j                  }t        |      | _        y)z\Sets location of the browser binary, either by string or
        ``FirefoxBinary`` instance.N)
isinstancer
   
_start_cmdstrbinary_location)r   r-   s     r   r,   zOptions.binary;   s%    
 j-0#..J":r   c                     | j                   S )z%:Returns: The location of the binary.)r'   r   s    r   r2   zOptions.binary_locationD   s     $$$r   valuec                 \    t        |t              st        | j                        || _        y)z2Sets the location of the browser binary by string.N)r/   r1   	TypeErrorBINARY_LOCATION_ERRORr'   )r   r4   s     r   r2   zOptions.binary_locationI   s'     %%D6677 %r   c                     | j                   S )z :Returns: A dict of preferences.r(   r   s    r   preferenceszOptions.preferencesP   s        r   namec                 "    || j                   |<   y)zSets a preference.Nr9   )r   r;   r4   s      r   set_preferencezOptions.set_preferenceU   s    "'$r   c                     | j                   S )z%:Returns: The Firefox profile to use.)r)   r   s    r   profilezOptions.profileY   s     }}r   new_profilec                 H    t        |t              st        |      }|| _        y)z\Sets location of the browser profile to use, either by string or
        ``FirefoxProfile``.N)r/   r   r)   )r   r@   s     r   r?   zOptions.profile^   s     +~6(5K#r   android_packagec                 (    t         |   |||       y r   )r&   enable_mobile)r   rB   android_activitydevice_serialr*   s       r   rD   zOptions.enable_mobilef   s     	o/?Or   c                    | j                   }i }| j                  r| j                  |d<   | j                  r| j                  |d<   | j                  r| j                  j                  |d<   | j
                  r| j
                  |d<   | j                  r|j                  | j                         |j                  | j                  j                                |r||t        j                  <   |S )z>Marshals the Firefox options to a `moz:firefoxOptions` object.r,   prefsr?   args)_capsr'   r(   r)   encoded
_argumentsmobile_optionsupdater   r   r"   KEY)r   capsoptss      r   r   zOptions.to_capabilitiesk   s     zz!  !22DN --DM=="mm33DO????DLKK++,DHH,,./ $Dr   c                 >    t         j                  j                         S r   )r   FIREFOXcopyr   s    r   default_capabilitieszOptions.default_capabilities   s    "**//11r   r   )zorg.mozilla.firefoxNN)r   r   r   rO   r   propertyr   r
   r,   setterr   r1   r2   r   r:   intboolr=   r   r   r?   rD   r   rU   __classcell__)r*   s   @r   r"   r"   (   s   
C -.4 4 / 4 ]]-./sM'9!: /t / / / % % % &S &T & & !T ! !(3 (uS#t^/D ( .1   ^^$5n)<#= $$ $ $ lpP'}P
 6 2d 2 2r   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   <module>ra      s:   "     ( N 8 C E `2j `2r   