
    Eg,                     b    d dl mZ d dlmZ d dlmZ  G d de          Z G d de          ZdS )	    )Enum)DesiredCapabilities)
ArgOptionsc                       e Zd ZdZdZdS )ElementScrollBehaviorr      N)__name__
__module____qualname__TOPBOTTOM     R/var/www/sysmax/venv/lib/python3.11/site-packages/selenium/webdriver/ie/options.pyr   r      s        
CFFFr   r   c                   ~    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dA fdZedefd            Zedefd            Zej        de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 e j        de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"e"j        de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$e$j        de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&e&j        de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)e)j        deddfd.            Z)edefd/            Z*e*j        deddfd0            Z*ed1efd2            Z+e+j        deddfd3            Z+edefd4            Z,e,j        deddfd5            Z,edefd6            Z-e-j        deddfd7            Z-edefd8            Z.e.j        deddfd9            Z.ede'fd:            Z/e/j        de'ddfd;            Z/edefd<            Z0d=e'fd>Z1defd?Z2edefd@            Z3 xZ4S )BOptionszse:ieOptionszie.browserCommandLineSwitchesbrowserAttachTimeoutelementScrollBehaviorzie.ensureCleanSessionzie.fileUploadDialogTimeoutzie.forceCreateProcessApizie.forceShellWindowsApizie.enableFullPageScreenshotignoreProtectedModeSettingsignoreZoomSettinginitialBrowserUrlnativeEventsenablePersistentHoverrequireWindowFocuszie.usePerProcessProxyz$ie.useLegacyFileUploadDialogHandlingzie.edgechromiumzie.edgepathreturnNc                 d    t                                                       i | _        i | _        d S N)super__init___options_additional)self	__class__s    r   r   zOptions.__init__2   s.    r   c                     | j         S )z):Returns: A dictionary of browser options)r    r"   s    r   optionszOptions.options7   s     }r   c                 @    | j                             | j                  S )zN
        :Returns: The options Browser Attach Timeout in milliseconds
        )r    getBROWSER_ATTACH_TIMEOUTr%   s    r   browser_attach_timeoutzOptions.browser_attach_timeout<   s    
 }  !<===r   valuec                 l    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+   s     r   r*   zOptions.browser_attach_timeoutC   s;     %%% 	KIJJJ5:d1222r   c                 @    | j                             | j                  S )z3:Returns: The options Element Scroll Behavior value)r    r(   ELEMENT_SCROLL_BEHAVIORr%   s    r   element_scroll_behaviorzOptions.element_scroll_behaviorN        }  !=>>>r   c                 v    |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    r2   r0   s     r   r3   zOptions.element_scroll_behaviorS   s@     .24I4PQQQDEEE6;d2333r   c                 @    | j                             | j                  S )z0:Returns: The options Ensure Clean Session value)r    r(   ENSURE_CLEAN_SESSIONr%   s    r   ensure_clean_sessionzOptions.ensure_clean_session^        }  !:;;;r   c                 $    || j         | j        <   dS )zeSets the options Ensure Clean Session value.

        :Args:
         - value: boolean value
        N)r    r7   r0   s     r   r8   zOptions.ensure_clean_sessionc        49d/000r   c                 @    | j                             | j                  S )z@:Returns: The options File Upload Dialog Timeout in milliseconds)r    r(   FILE_UPLOAD_DIALOG_TIMEOUTr%   s    r   file_upload_dialog_timeoutz"Options.file_upload_dialog_timeoutl   s     }  !@AAAr   c                 l    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=   r0   s     r   r>   z"Options.file_upload_dialog_timeoutq   s;     %%% 	OMNNN9>d5666r   c                 @    | j                             | j                  S )z4:Returns: The options Force Create Process Api value)r    r(   FORCE_CREATE_PROCESS_APIr%   s    r   force_create_process_apiz Options.force_create_process_api|   s     }  !>???r   c                 $    || j         | j        <   dS )ziSets the options Force Create Process Api value.

        :Args:
         - value: boolean value
        N)r    rA   r0   s     r   rB   z Options.force_create_process_api   s     8=d3444r   c                 @    | j                             | j                  S )z3:Returns: The options Force Shell Windows Api value)r    r(   FORCE_SHELL_WINDOWS_APIr%   s    r   force_shell_windows_apizOptions.force_shell_windows_api   r4   r   c                 $    || j         | j        <   dS )zhSets the options Force Shell Windows Api value.

        :Args:
         - value: boolean value
        N)r    rE   r0   s     r   rF   zOptions.force_shell_windows_api   s     7<d2333r   c                 @    | j                             | j                  S )z0:Returns: The options Full Page Screenshot value)r    r(   FULL_PAGE_SCREENSHOTr%   s    r   full_page_screenshotzOptions.full_page_screenshot   r9   r   c                 $    || j         | j        <   dS )zeSets the options Full Page Screenshot value.

        :Args:
         - value: boolean value
        N)r    rI   r0   s     r   rJ   zOptions.full_page_screenshot   r;   r   c                 @    | j                             | j                  S )z::Returns: The options Ignore Protected Mode Settings value)r    r(   IGNORE_PROTECTED_MODE_SETTINGSr%   s    r   ignore_protected_mode_settingsz&Options.ignore_protected_mode_settings   s     }  !DEEEr   c                 $    || j         | j        <   dS )zoSets the options Ignore Protected Mode Settings value.

        :Args:
         - value: boolean value
        N)r    rM   r0   s     r   rN   z&Options.ignore_protected_mode_settings   s     >Cd9:::r   c                 @    | j                             | j                  S )z-:Returns: The options Ignore Zoom Level value)r    r(   IGNORE_ZOOM_LEVELr%   s    r   ignore_zoom_levelzOptions.ignore_zoom_level   s     }  !7888r   c                 $    || j         | j        <   dS )zbSets the options Ignore Zoom Level value.

        :Args:
         - value: boolean value
        N)r    rQ   r0   s     r   rR   zOptions.ignore_zoom_level   s     16d,---r   c                 @    | j                             | j                  S )z/:Returns: The options Initial Browser Url value)r    r(   INITIAL_BROWSER_URLr%   s    r   initial_browser_urlzOptions.initial_browser_url   s     }  !9:::r   c                 $    || j         | j        <   dS )zaSets the options Initial Browser Url value.

        :Args:
         - value: URL string
        N)r    rU   r0   s     r   rV   zOptions.initial_browser_url   s     38d.///r   c                 @    | j                             | j                  S )z):Returns: The options Native Events value)r    r(   NATIVE_EVENTSr%   s    r   native_eventszOptions.native_events   s     }  !3444r   c                 $    || j         | j        <   dS )z^Sets the options Native Events value.

        :Args:
         - value: boolean value
        N)r    rY   r0   s     r   rZ   zOptions.native_events   s     -2d()))r   c                 @    | j                             | j                  S )z,:Returns: The options Persistent Hover value)r    r(   PERSISTENT_HOVERr%   s    r   persistent_hoverzOptions.persistent_hover   s     }  !6777r   c                 $    || j         | j        <   dS )zaSets the options Persistent Hover value.

        :Args:
         - value: boolean value
        N)r    r]   r0   s     r   r^   zOptions.persistent_hover   s     05d+,,,r   r"   c                 @    | j                             | j                  S )z0:Returns: The options Require Window Focus value)r    r(   REQUIRE_WINDOW_FOCUSr%   s    r   require_window_focuszOptions.require_window_focus   r9   r   c                 $    || j         | j        <   dS )zeSets the options Require Window Focus value.

        :Args:
         - value: boolean value
        N)r    ra   r0   s     r   rb   zOptions.require_window_focus   r;   r   c                 @    | j                             | j                  S )z2:Returns: The options User Per Process Proxy value)r    r(   USE_PER_PROCESS_PROXYr%   s    r   use_per_process_proxyzOptions.use_per_process_proxy        }  !;<<<r   c                 $    || j         | j        <   dS )zgSets the options User Per Process Proxy value.

        :Args:
         - value: boolean value
        N)r    re   r0   s     r   rf   zOptions.use_per_process_proxy        5:d0111r   c                 @    | j                             | j                  S )zB:Returns: The options Use Legacy File Upload Dialog Handling value)r    r(   &USE_LEGACY_FILE_UPLOAD_DIALOG_HANDLINGr%   s    r   &use_legacy_file_upload_dialog_handlingz.Options.use_legacy_file_upload_dialog_handling  s     }  !LMMMr   c                 $    || j         | j        <   dS )zwSets the options Use Legacy File Upload Dialog Handling value.

        :Args:
         - value: boolean value
        N)r    rk   r0   s     r   rl   z.Options.use_legacy_file_upload_dialog_handling  s     FKdABBBr   c                 @    | j                             | j                  S )z1:Returns: The options Attach to Edge Chrome value)r    r(   ATTACH_TO_EDGE_CHROMEr%   s    r   attach_to_edge_chromezOptions.attach_to_edge_chrome  rg   r   c                 $    || j         | j        <   dS )zfSets the options Attach to Edge Chrome value.

        :Args:
         - value: boolean value
        N)r    ro   r0   s     r   rp   zOptions.attach_to_edge_chrome  ri   r   c                 @    | j                             | j                  S )z0:Returns: The options Edge Executable Path value)r    r(   EDGE_EXECUTABLE_PATHr%   s    r   edge_executable_pathzOptions.edge_executable_path$  r9   r   c                 $    || j         | j        <   dS )zbSets the options Initial Browser Url value.

        :Args:
         - value: Path string
        N)r    rs   r0   s     r   rt   zOptions.edge_executable_path)  r;   r   c                     | j         S )z :Returns: The additional optionsr!   r%   s    r   additional_optionszOptions.additional_options2  s     r   namec                     || j         |<   dS )zAdds 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
        Nrw   )r"   ry   r+   s      r   add_additional_optionzOptions.add_additional_option7  s     "'r   c                 b   | j         }| j                                        }t          | j                  dk    r"d                    | j                  || j        <   t          | j                  dk    r|                    | j                   t          |          dk    r||t          j
        <   |S )z.Marshals the IE options to the correct object.r    )_capsr    copylen
_argumentsjoinSWITCHESr!   updater   KEY)r"   capsoptss      r   to_capabilitieszOptions.to_capabilities@  s    z}!!##t!##"%((4?";";Dt  1$$KK()))t99q== $Dr   c                 >    t           j                                        S r   )r   INTERNETEXPLORERr   r%   s    r   default_capabilitieszOptions.default_capabilitiesO  s    "388:::r   )r   N)5r	   r
   r   r   r   r)   r2   r7   r=   rA   rE   rI   rM   rQ   rU   rY   r]   ra   re   rk   ro   rs   r   propertydictr&   r.   r*   setterr   r3   boolr8   r>   rB   rF   rJ   rN   rR   strrV   rZ   r^   rb   rf   rl   rp   rt   rx   r{   r   r   __classcell__)r#   s   @r   r   r      sb       
C.H352!=978%B"+-"M./3-S*-(     
     X > > > > X> ";C ;D ; ; ; #"; ?)> ? ? ? X? #<-B <t < < < $#< <d < < < X<  9$ 94 9 9 9 ! 9 BC B B B XB  &? ? ? ? ? '&? @$ @ @ @ X@ $=d =t = = = %$= ? ? ? ? X? #<T <d < < < $#< <d < < < X<  9$ 94 9 9 9 ! 9 F F F F XF $*CD CT C C C +*C 94 9 9 9 X9 6t 6 6 6 6 6 ;S ; ; ; X; 8 8 8 8 8  8 5t 5 5 5 X5 24 2D 2 2 2 2 8$ 8 8 8 X8 5d 5t 5 5 5 5 <4 < < < X<  9$ 94 9 9 9 ! 9 =t = = = X= !:4 :D : : : "!: N N N N XN ,2KD KT K K K 32K =t = = = X= !:4 :D : : : "!: <c < < < X<  9# 9$ 9 9 9 ! 9  D       X '# ' ' ' '     ;d ; ; ; X; ; ; ; ;r   r   N)enumr   .selenium.webdriver.common.desired_capabilitiesr   !selenium.webdriver.common.optionsr   r   r   r   r   r   <module>r      s   "       N N N N N N 8 8 8 8 8 8    D   
u; u; u; u; u;j u; u; u; u; u;r   