a
    ¾Ê.c-  ã                   @   sH   d dl mZ d dlmZ d dlmZ G dd„ deƒZG dd„ deƒZdS )	é    )ÚEnum)ÚDesiredCapabilities)Ú
ArgOptionsc                   @   s   e Zd ZdZdZdS )ÚElementScrollBehaviorr   é   N)Ú__name__Ú
__module__Ú__qualname__ÚTOPÚBOTTOM© r   r   úW/var/www/brookimports/venv/lib/python3.9/site-packages/selenium/webdriver/ie/options.pyr      s   r   c                       s@  e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZ‡ fdd„Zeedœdd„ƒZeedœdd„ƒZejedœdd„ƒZeedœdd„ƒZejedœdd„ƒZeedœd d!„ƒZ e jedœd"d!„ƒZ eedœd#d$„ƒZ!e!jedœd%d$„ƒZ!eedœd&d'„ƒZ"e"jedœd(d'„ƒZ"eedœd)d*„ƒZ#e#jedœd+d*„ƒZ#eedœd,d-„ƒZ$e$jedœd.d-„ƒZ$eedœd/d0„ƒZ%e%jedœd1d0„ƒZ%eedœd2d3„ƒZ&e&jedœd4d3„ƒZ&ee'dœd5d6„ƒZ(e(je'dœd7d6„ƒZ(eedœd8d9„ƒZ)e)jedœd:d9„ƒZ)eedœd;d<„ƒZ*e*jedœd=d<„ƒZ*eed>œd?d@„ƒZ+e+jedœdAd@„ƒZ+eedœdBdC„ƒZ,e,jedœdDdC„ƒZ,eedœdEdF„ƒZ-e-jedœdGdF„ƒZ-eedœdHdI„ƒZ.e.jedœdJdI„ƒZ.ee'dœdKdL„ƒZ/e/je'dœdMdL„ƒZ/eedœdNdO„ƒZ0e'dPœdQdR„Z1edœdSdT„Z2eedœdUdV„ƒZ3‡  Z4S )WÚOptionszse:ieOptionszie.browserCommandLineSwitchesZbrowserAttachTimeoutZelementScrollBehaviorzie.ensureCleanSessionzie.fileUploadDialogTimeoutzie.forceCreateProcessApizie.forceShellWindowsApizie.enableFullPageScreenshotZignoreProtectedModeSettingsZignoreZoomSettingZinitialBrowserUrlZnativeEventsZenablePersistentHoverZrequireWindowFocuszie.usePerProcessProxyz$ie.useLegacyFileUploadDialogHandlingzie.edgechromiumzie.edgepathc                    s   t ƒ  ¡  i | _i | _d S ©N)ÚsuperÚ__init__Ú_optionsÚ_additional©Úself©Ú	__class__r   r   r   3   s    
zOptions.__init__)Úreturnc                 C   s   | j S )z*:Returns: A dictionary of browser options )r   r   r   r   r   Úoptions8   s    zOptions.optionsc                 C   s   | j  | j¡S )zN
        :Returns: The options Browser Attach Timeout in milliseconds
        )r   ÚgetÚBROWSER_ATTACH_TIMEOUTr   r   r   r   Úbrowser_attach_timeout=   s    zOptions.browser_attach_timeout)Úvaluec                 C   s"   t |tƒstdƒ‚|| j| j< dS )zt
        Sets the options Browser Attach Timeout

        :Args:
         - value: Timeout in milliseconds

        z*Browser Attach Timeout must be an integer.N)Ú
isinstanceÚintÚ
ValueErrorr   r   ©r   r   r   r   r   r   D   s    	
c                 C   s   | j  | j¡S )z4:Returns: The options Element Scroll Behavior value )r   r   ÚELEMENT_SCROLL_BEHAVIORr   r   r   r   Úelement_scroll_behaviorQ   s    zOptions.element_scroll_behaviorc                 C   s(   |t jt jfvrtdƒ‚|| j| j< dS )zq
        Sets the options Element Scroll Behavior

        :Args:
         - value: 0 - Top, 1 - Bottom

        z%Element Scroll Behavior out of range.N)r   r
   r   r    r   r"   r!   r   r   r   r#   V   s    	c                 C   s   | j  | j¡S )z1:Returns: The options Ensure Clean Session value )r   r   ÚENSURE_CLEAN_SESSIONr   r   r   r   Úensure_clean_sessionc   s    zOptions.ensure_clean_sessionc                 C   s   || j | j< dS )zn
        Sets the options Ensure Clean Session value

        :Args:
         - value: boolean value

        N)r   r$   r!   r   r   r   r%   h   s    	c                 C   s   | j  | j¡S )zA:Returns: The options File Upload Dialog Timeout in milliseconds )r   r   ÚFILE_UPLOAD_DIALOG_TIMEOUTr   r   r   r   Úfile_upload_dialog_timeouts   s    z"Options.file_upload_dialog_timeoutc                 C   s"   t |tƒstdƒ‚|| j| j< dS )z~
        Sets the options File Upload Dialog Timeout value

        :Args:
         - value: Timeout in milliseconds

        z.File Upload Dialog Timeout must be an integer.N)r   r   r    r   r&   r!   r   r   r   r'   x   s    	
c                 C   s   | j  | j¡S )z5:Returns: The options Force Create Process Api value )r   r   ÚFORCE_CREATE_PROCESS_APIr   r   r   r   Úforce_create_process_api…   s    z Options.force_create_process_apic                 C   s   || j | j< dS )zr
        Sets the options Force Create Process Api value

        :Args:
         - value: boolean value

        N)r   r(   r!   r   r   r   r)   Š   s    	c                 C   s   | j  | j¡S )z4:Returns: The options Force Shell Windows Api value )r   r   ÚFORCE_SHELL_WINDOWS_APIr   r   r   r   Úforce_shell_windows_api•   s    zOptions.force_shell_windows_apic                 C   s   || j | j< dS )zq
        Sets the options Force Shell Windows Api value

        :Args:
         - value: boolean value

        N)r   r*   r!   r   r   r   r+   š   s    	c                 C   s   | j  | j¡S )z1:Returns: The options Full Page Screenshot value )r   r   ÚFULL_PAGE_SCREENSHOTr   r   r   r   Úfull_page_screenshot¥   s    zOptions.full_page_screenshotc                 C   s   || j | j< dS )zn
        Sets the options Full Page Screenshot value

        :Args:
         - value: boolean value

        N)r   r,   r!   r   r   r   r-   ª   s    	c                 C   s   | j  | j¡S )z;:Returns: The options Ignore Protected Mode Settings value )r   r   ÚIGNORE_PROTECTED_MODE_SETTINGSr   r   r   r   Úignore_protected_mode_settingsµ   s    z&Options.ignore_protected_mode_settingsc                 C   s   || j | j< dS )zx
        Sets the options Ignore Protected Mode Settings value

        :Args:
         - value: boolean value

        N)r   r.   r!   r   r   r   r/   º   s    	c                 C   s   | j  | j¡S )z.:Returns: The options Ignore Zoom Level value )r   r   ÚIGNORE_ZOOM_LEVELr   r   r   r   Úignore_zoom_levelÅ   s    zOptions.ignore_zoom_levelc                 C   s   || j | j< dS )zk
        Sets the options Ignore Zoom Level value

        :Args:
         - value: boolean value

        N)r   r0   r!   r   r   r   r1   Ê   s    	c                 C   s   | j  | j¡S )z0:Returns: The options Initial Browser Url value )r   r   ÚINITIAL_BROWSER_URLr   r   r   r   Úinitial_browser_urlÕ   s    zOptions.initial_browser_urlc                 C   s   || j | j< dS )zj
        Sets the options Initial Browser Url value

        :Args:
         - value: URL string

        N)r   r2   r!   r   r   r   r3   Ú   s    	c                 C   s   | j  | j¡S )z*:Returns: The options Native Events value )r   r   ÚNATIVE_EVENTSr   r   r   r   Únative_eventså   s    zOptions.native_eventsc                 C   s   || j | j< dS )zg
        Sets the options Native Events value

        :Args:
         - value: boolean value

        N)r   r4   r!   r   r   r   r5   ê   s    	c                 C   s   | j  | j¡S )z-:Returns: The options Persistent Hover value )r   r   ÚPERSISTENT_HOVERr   r   r   r   Úpersistent_hoverõ   s    zOptions.persistent_hoverc                 C   s   || j | j< dS )zj
        Sets the options Persistent Hover value

        :Args:
         - value: boolean value

        N)r   r6   r!   r   r   r   r7   ú   s    	r   c                 C   s   | j  | j¡S )z1:Returns: The options Require Window Focus value )r   r   ÚREQUIRE_WINDOW_FOCUSr   r   r   r   Úrequire_window_focus  s    zOptions.require_window_focusc                 C   s   || j | j< dS )zn
        Sets the options Require Window Focus value

        :Args:
         - value: boolean value

        N)r   r8   r!   r   r   r   r9   
  s    	c                 C   s   | j  | j¡S )z3:Returns: The options User Per Process Proxy value )r   r   ÚUSE_PER_PROCESS_PROXYr   r   r   r   Úuse_per_process_proxy  s    zOptions.use_per_process_proxyc                 C   s   || j | j< dS )zp
        Sets the options User Per Process Proxy value

        :Args:
         - value: boolean value

        N)r   r:   r!   r   r   r   r;     s    	c                 C   s   | j  | j¡S )zC:Returns: The options Use Legacy File Upload Dialog Handling value )r   r   Ú&USE_LEGACY_FILE_UPLOAD_DIALOG_HANDLINGr   r   r   r   Ú&use_legacy_file_upload_dialog_handling%  s    z.Options.use_legacy_file_upload_dialog_handlingc                 C   s   || j | j< dS )z€
        Sets the options Use Legacy File Upload Dialog Handling value

        :Args:
         - value: boolean value

        N)r   r<   r!   r   r   r   r=   *  s    	c                 C   s   | j  | j¡S )z2:Returns: The options Attach to Edge Chrome value )r   r   ÚATTACH_TO_EDGE_CHROMEr   r   r   r   Úattach_to_edge_chrome5  s    zOptions.attach_to_edge_chromec                 C   s   || j | j< dS )zo
        Sets the options Attach to Edge Chrome value

        :Args:
         - value: boolean value

        N)r   r>   r!   r   r   r   r?   :  s    	c                 C   s   | j  | j¡S )z1:Returns: The options Edge Executable Path value )r   r   ÚEDGE_EXECUTABLE_PATHr   r   r   r   Úedge_executable_pathE  s    zOptions.edge_executable_pathc                 C   s   || j | j< dS )zk
        Sets the options Initial Browser Url value

        :Args:
         - value: Path string

        N)r   r@   r!   r   r   r   rA   J  s    	c                 C   s   | j S )z!:Returns: The additional options ©r   r   r   r   r   Úadditional_optionsU  s    zOptions.additional_options)Únamec                 C   s   || j |< dS )zº
        Adds an additional option not yet added as a safe option for IE

        :Args:
         - name: name of the option to add
         - value: value of the option to add

        NrB   )r   rD   r   r   r   r   Úadd_additional_optionZ  s    	zOptions.add_additional_optionc                 C   sd   | j }| j ¡ }t| jƒdkr0d | j¡|| j< t| jƒdkrJ| | j¡ t|ƒdkr`||t	j
< |S )z.Marshals the IE options to the correct object.r   ú )Z_capsr   ÚcopyÚlenZ
_argumentsÚjoinÚSWITCHESr   Úupdater   ÚKEY)r   ZcapsÚoptsr   r   r   Úto_capabilitiese  s    

zOptions.to_capabilitiesc                 C   s
   t j ¡ S r   )r   ZINTERNETEXPLORERrG   r   r   r   r   Údefault_capabilitiest  s    zOptions.default_capabilities)5r   r   r	   rL   rJ   r   r"   r$   r&   r(   r*   r,   r.   r0   r2   r4   r6   r8   r:   r<   r>   r@   r   ÚpropertyÚdictr   r   r   Úsetterr   r#   Úboolr%   r'   r)   r+   r-   r/   r1   Ústrr3   r5   r7   r9   r;   r=   r?   rA   rC   rE   rN   rO   Ú__classcell__r   r   r   r   r      sÀ   













r   N)Úenumr   Z.selenium.webdriver.common.desired_capabilitiesr   Z!selenium.webdriver.common.optionsr   r   r   r   r   r   r   Ú<module>   s   