o
    US`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   úH/usr/local/lib/python3.10/dist-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de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ejde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!e!jde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#e#jde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d0d1„ƒZ%e%jdeddfd2d1„ƒZ%edefd3d4„ƒZ&e&jdeddfd5d4„ƒZ&ede'fd6d7„ƒZ(e(jde'ddfd8d7„ƒZ(edefd9d:„ƒZ)e)jde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@dA„ƒZ+e+jdeddfdBdA„ƒZ+edefdCdD„ƒZ,e,jdeddfdEdD„ƒZ,edefdFdG„ƒZ-e-jdeddfdHdG„ƒZ-edefdIdJ„ƒZ.e.jdeddfdKdJ„ƒZ.ede'fdLdM„ƒZ/e/jde'ddfdNdM„ƒZ/edefdOdP„ƒZ0dQe'fdRdS„Z1defdTdU„Z2edefdVdW„ƒZ3‡  Z4S )XÚ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   ó   | j S )z*:Returns: A dictionary of browser options )r   r   r   r   r   Úoptions8   ó   zOptions.optionsc                 C   ó   | 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ÚvalueNc                 C   ó"   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   ó   
	c                 C   r   )z4:Returns: The options Element Scroll Behavior value )r   r   ÚELEMENT_SCROLL_BEHAVIORr   r   r   r   Úelement_scroll_behaviorQ   ó   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   r   )z1:Returns: The options Ensure Clean Session value )r   r   ÚENSURE_CLEAN_SESSIONr   r   r   r   Úensure_clean_sessionc   r)   zOptions.ensure_clean_sessionc                 C   ó   || 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   ó   	c                 C   r   )zA:Returns: The options File Upload Dialog Timeout in milliseconds )r   r   ÚFILE_UPLOAD_DIALOG_TIMEOUTr   r   r   r   Úfile_upload_dialog_timeouts   r)   z"Options.file_upload_dialog_timeoutc                 C   r!   )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   r&   c                 C   r   )z5:Returns: The options Force Create Process Api value )r   r   ÚFORCE_CREATE_PROCESS_APIr   r   r   r   Úforce_create_process_api…   r)   z Options.force_create_process_apic                 C   r,   )zr
        Sets the options Force Create Process Api value

        :Args:
         - value: boolean value

        N)r   r0   r%   r   r   r   r1   Š   r-   c                 C   r   )z4:Returns: The options Force Shell Windows Api value )r   r   ÚFORCE_SHELL_WINDOWS_APIr   r   r   r   Úforce_shell_windows_api•   r)   zOptions.force_shell_windows_apic                 C   r,   )zq
        Sets the options Force Shell Windows Api value

        :Args:
         - value: boolean value

        N)r   r2   r%   r   r   r   r3   š   r-   c                 C   r   )z1:Returns: The options Full Page Screenshot value )r   r   ÚFULL_PAGE_SCREENSHOTr   r   r   r   Úfull_page_screenshot¥   r)   zOptions.full_page_screenshotc                 C   r,   )zn
        Sets the options Full Page Screenshot value

        :Args:
         - value: boolean value

        N)r   r4   r%   r   r   r   r5   ª   r-   c                 C   r   )z;:Returns: The options Ignore Protected Mode Settings value )r   r   ÚIGNORE_PROTECTED_MODE_SETTINGSr   r   r   r   Úignore_protected_mode_settingsµ   r)   z&Options.ignore_protected_mode_settingsc                 C   r,   )zx
        Sets the options Ignore Protected Mode Settings value

        :Args:
         - value: boolean value

        N)r   r6   r%   r   r   r   r7   º   r-   c                 C   r   )z.:Returns: The options Ignore Zoom Level value )r   r   ÚIGNORE_ZOOM_LEVELr   r   r   r   Úignore_zoom_levelÅ   r)   zOptions.ignore_zoom_levelc                 C   r,   )zk
        Sets the options Ignore Zoom Level value

        :Args:
         - value: boolean value

        N)r   r8   r%   r   r   r   r9   Ê   r-   c                 C   r   )z0:Returns: The options Initial Browser Url value )r   r   ÚINITIAL_BROWSER_URLr   r   r   r   Úinitial_browser_urlÕ   r)   zOptions.initial_browser_urlc                 C   r,   )zj
        Sets the options Initial Browser Url value

        :Args:
         - value: URL string

        N)r   r:   r%   r   r   r   r;   Ú   r-   c                 C   r   )z*:Returns: The options Native Events value )r   r   ÚNATIVE_EVENTSr   r   r   r   Únative_eventså   r)   zOptions.native_eventsc                 C   r,   )zg
        Sets the options Native Events value

        :Args:
         - value: boolean value

        N)r   r<   r%   r   r   r   r=   ê   r-   c                 C   r   )z-:Returns: The options Persistent Hover value )r   r   ÚPERSISTENT_HOVERr   r   r   r   Úpersistent_hoverõ   r)   zOptions.persistent_hoverc                 C   r,   )zj
        Sets the options Persistent Hover value

        :Args:
         - value: boolean value

        N)r   r>   r%   r   r   r   r?   ú   r-   r   c                 C   r   )z1:Returns: The options Require Window Focus value )r   r   ÚREQUIRE_WINDOW_FOCUSr   r   r   r   Úrequire_window_focus  r)   zOptions.require_window_focusc                 C   r,   )zn
        Sets the options Require Window Focus value

        :Args:
         - value: boolean value

        N)r   r@   r%   r   r   r   rA   
  r-   c                 C   r   )z3:Returns: The options User Per Process Proxy value )r   r   ÚUSE_PER_PROCESS_PROXYr   r   r   r   Úuse_per_process_proxy  r)   zOptions.use_per_process_proxyc                 C   r,   )zp
        Sets the options User Per Process Proxy value

        :Args:
         - value: boolean value

        N)r   rB   r%   r   r   r   rC     r-   c                 C   r   )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%  r)   z.Options.use_legacy_file_upload_dialog_handlingc                 C   r,   )z€
        Sets the options Use Legacy File Upload Dialog Handling value

        :Args:
         - value: boolean value

        N)r   rD   r%   r   r   r   rE   *  r-   c                 C   r   )z2:Returns: The options Attach to Edge Chrome value )r   r   ÚATTACH_TO_EDGE_CHROMEr   r   r   r   Úattach_to_edge_chrome5  r)   zOptions.attach_to_edge_chromec                 C   r,   )zo
        Sets the options Attach to Edge Chrome value

        :Args:
         - value: boolean value

        N)r   rF   r%   r   r   r   rG   :  r-   c                 C   r   )z1:Returns: The options Edge Executable Path value )r   r   ÚEDGE_EXECUTABLE_PATHr   r   r   r   Úedge_executable_pathE  r)   zOptions.edge_executable_pathc                 C   r,   )zk
        Sets the options Initial Browser Url value

        :Args:
         - value: Path string

        N)r   rH   r%   r   r   r   rI   J  r-   c                 C   r   )z!:Returns: The additional options ©r   r   r   r   r   Úadditional_optionsU  r   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

        NrJ   )r   rL   r    r   r   r   Úadd_additional_optionZ  s   	zOptions.add_additional_optionc                 C   sd   | j }| j ¡ }t| jƒdkrd | j¡|| j< t| jƒdkr%| | j¡ t|ƒdkr0||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INTERNETEXPLORERrO   r   r   r   r   Údefault_capabilitiest  s   
zOptions.default_capabilities)5r   r   r	   rT   rR   r   r'   r*   r.   r0   r2   r4   r6   r8   r:   r<   r>   r@   rB   rD   rF   rH   r   ÚpropertyÚdictr   r#   r   Úsetterr   r(   Úboolr+   r/   r1   r3   r5   r7   r9   Ústrr;   r=   r?   rA   rC   rE   rG   rI   rK   rM   rV   rW   Ú__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
   