a
    Šxdé,  ã                   @   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   úU/var/www/html/Ranjet/env/lib/python3.9/site-packages/selenium/webdriver/ie/options.pyr      s   r   c                       sh  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ddœ‡ fdd„Zeedœdd„ƒZeedœdd„ƒZejeddœdd„ƒZeedœdd„ƒZejeddœd d„ƒZeedœd!d"„ƒZ e jeddœd#d"„ƒZ eedœd$d%„ƒZ!e!jeddœd&d%„ƒZ!eedœd'd(„ƒZ"e"jeddœd)d(„ƒZ"eedœd*d+„ƒZ#e#jeddœd,d+„ƒZ#eedœd-d.„ƒZ$e$jeddœd/d.„ƒZ$eedœd0d1„ƒZ%e%jeddœd2d1„ƒZ%eedœd3d4„ƒZ&e&jeddœd5d4„ƒZ&ee'dœd6d7„ƒZ(e(je'ddœd8d7„ƒZ(eedœd9d:„ƒZ)e)jeddœd;d:„ƒZ)eedœd<d=„ƒZ*e*jeddœd>d=„ƒZ*eed?œd@dA„ƒZ+e+jeddœdBdA„ƒZ+eedœdCdD„ƒZ,e,jeddœdEdD„ƒZ,eedœdFdG„ƒZ-e-jeddœdHdG„ƒZ-eedœdIdJ„ƒZ.e.jeddœdKdJ„ƒZ.ee'dœdLdM„ƒZ/e/je'ddœdNdM„ƒZ/eedœdOdP„ƒZ0e'dQœdRdS„Z1edœdTdU„Z2eedœ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.edgepathN)Úreturnc                    s   t ƒ  ¡  i | _i | _d S ©N)ÚsuperÚ__init__Ú_optionsÚ_additional©Úself©Ú	__class__r   r   r   2   s    
zOptions.__init__c                 C   s   | j S )z):Returns: A dictionary of browser options)r   r   r   r   r   Úoptions7   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)Úvaluer   c                 C   s"   t |tƒstdƒ‚|| j| j< dS )zkSets 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   C   s    
c                 C   s   | j  | j¡S )z3:Returns: The options Element Scroll Behavior value)r   r   ÚELEMENT_SCROLL_BEHAVIORr   r   r   r   Úelement_scroll_behaviorN   s    zOptions.element_scroll_behaviorc                 C   s(   |t jt jfvrtdƒ‚|| j| j< dS )zhSets 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#   S   s    c                 C   s   | j  | j¡S )z0:Returns: The options Ensure Clean Session value)r   r   ÚENSURE_CLEAN_SESSIONr   r   r   r   Úensure_clean_session^   s    zOptions.ensure_clean_sessionc                 C   s   || j | j< dS )zeSets the options Ensure Clean Session value.

        :Args:
         - value: boolean value
        N)r   r$   r!   r   r   r   r%   c   s    c                 C   s   | j  | j¡S )z@:Returns: The options File Upload Dialog Timeout in milliseconds)r   r   ÚFILE_UPLOAD_DIALOG_TIMEOUTr   r   r   r   Úfile_upload_dialog_timeoutl   s    z"Options.file_upload_dialog_timeoutc                 C   s"   t |tƒstdƒ‚|| j| j< dS )zuSets 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'   q   s    
c                 C   s   | j  | j¡S )z4: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 )ziSets 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 )z3: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 )zhSets 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 )z0: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 )zeSets 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 )zoSets 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 )zbSets 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 )z/: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 )zaSets 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 )z^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 )zaSets 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 )z0: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 )zeSets 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 )z2: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 )zgSets 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 )zB: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 )zwSets 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 )z1:Returns: The options Attach to Edge Chrome value)r   r   ÚATTACH_TO_EDGE_CHROMEr   r   r   r   Úattach_to_edge_chrome  s    zOptions.attach_to_edge_chromec                 C   s   || j | j< dS )zfSets 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 )z0:Returns: The options Edge Executable Path value)r   r   ÚEDGE_EXECUTABLE_PATHr   r   r   r   Úedge_executable_path$  s    zOptions.edge_executable_pathc                 C   s   || j | j< dS )zbSets the options Initial Browser Url value.

        :Args:
         - value: Path string
        N)r   r@   r!   r   r   r   rA   )  s    c                 C   s   | j S )z :Returns: The additional options©r   r   r   r   r   Úadditional_options2  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_option7  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_capabilities@  s    

zOptions.to_capabilitiesc                 C   s
   t j ¡ S r   )r   ZINTERNETEXPLORERrG   r   r   r   r   Údefault_capabilitiesO  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   