
    hg-                     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     V/var/www/fb-scrape/myenv/lib/python3.11/site-packages/selenium/webdriver/ie/options.pyr   r      s        
CFFFr   r   c                   8    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Zedefd            Zedefd            Zej        defd            Zedefd            Zej        defd            Zedefd            Z e j        defd            Z edefd            Z!e!j        defd            Z!edefd             Z"e"j        defd!            Z"edefd"            Z#e#j        defd#            Z#edefd$            Z$e$j        defd%            Z$edefd&            Z%e%j        defd'            Z%edefd(            Z&e&j        defd)            Z&ede'fd*            Z(e(j        de'fd+            Z(edefd,            Z)e)j        defd-            Z)edefd.            Z*e*j        defd/            Z*ed0efd1            Z+e+j        defd2            Z+edefd3            Z,e,j        defd4            Z,edefd5            Z-e-j        defd6            Z-edefd7            Z.e.j        defd8            Z.ede'fd9            Z/e/j        de'fd:            Z/edefd;            Z0d<e'fd=Z1defd>Z2edefd?            Z3 xZ4S )@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.edgepathc                 r    t          t          |                                            i | _        i | _        d S N)superr   __init___options_additional)self	__class__s    r   r   zOptions.__init__3   s4    gt%%'''r   returnc                     | j         S )z*:Returns: A dictionary of browser options )r   r!   s    r   optionszOptions.options8   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 )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+   s     r   r*   zOptions.browser_attach_timeoutD   s;     %%% 	KIJJJ5:d1222r   c                 @    | j                             | j                  S )z4:Returns: The options Element Scroll Behavior value )r   r(   ELEMENT_SCROLL_BEHAVIORr%   s    r   element_scroll_behaviorzOptions.element_scroll_behaviorQ        }  !=>>>r   c                 v    |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   r2   r0   s     r   r3   zOptions.element_scroll_behaviorV   s@     .24I4PQQQDEEE6;d2333r   c                 @    | j                             | j                  S )z1:Returns: The options Ensure Clean Session value )r   r(   ENSURE_CLEAN_SESSIONr%   s    r   ensure_clean_sessionzOptions.ensure_clean_sessionc        }  !:;;;r   c                 $    || j         | j        <   dS )zn
        Sets the options Ensure Clean Session value

        :Args:
         - value: boolean value

        N)r   r7   r0   s     r   r8   zOptions.ensure_clean_sessionh        49d/000r   c                 @    | j                             | j                  S )zA: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_timeouts   s     }  !@AAAr   c                 l    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=   r0   s     r   r>   z"Options.file_upload_dialog_timeoutx   s;     %%% 	OMNNN9>d5666r   c                 @    | j                             | j                  S )z5: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 )zr
        Sets 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 )z4: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 )zq
        Sets 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 )z1: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 )zn
        Sets 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 )zx
        Sets 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 )zk
        Sets 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 )z0: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 )zj
        Sets 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 )zg
        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 )zj
        Sets 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 )z1: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 )zn
        Sets 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 )z3: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 )zp
        Sets 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 )zC: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 )z
        Sets 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 )z2:Returns: The options Attach to Edge Chrome value )r   r(   ATTACH_TO_EDGE_CHROMEr%   s    r   attach_to_edge_chromezOptions.attach_to_edge_chrome5  rg   r   c                 $    || j         | j        <   dS )zo
        Sets 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 )z1:Returns: The options Edge Executable Path value )r   r(   EDGE_EXECUTABLE_PATHr%   s    r   edge_executable_pathzOptions.edge_executable_pathE  r9   r   c                 $    || j         | j        <   dS )zk
        Sets the options Initial Browser Url value

        :Args:
         - value: Path string

        N)r   rs   r0   s     r   rt   zOptions.edge_executable_pathJ  r;   r   c                     | j         S )z!:Returns: The additional options r    r%   s    r   additional_optionszOptions.additional_optionsU  s     r   namec                     || 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

        Nrw   )r!   ry   r+   s      r   add_additional_optionzOptions.add_additional_optionZ  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_capabilitiese  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_capabilitiest  s    "388:::r   )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      s       
C.H352!=978%B"+-"M./3-S*-(    
     X > > > > X> "
;C 
; 
; 
; #"
; ?)> ? ? ? X? #
<-B 
< 
< 
< $#
< <d < < < X<  9$ 9 9 9 ! 9 BC B B B XB  &
? 
? 
? 
? '&
? @$ @ @ @ X@ $=d = = = %$= ? ? ? ? X? #<T < < < $#< <d < < < X<  9$ 9 9 9 ! 9 F F F F XF $*CD C C C +*C 94 9 9 9 X9 6t 6 6 6 6 ;S ; ; ; X; 8 8 8 8  8 5t 5 5 5 X5 24 2 2 2 2 8$ 8 8 8 X8 5d 5 5 5 5 <4 < < < X<  9$ 9 9 9 ! 9 =t = = = X= !:4 : : : "!: N N N N XN ,2KD K K K 32K =t = = = X= !:4 : : : "!: <c < < < X<  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   
Z; Z; Z; Z; Z;j Z; Z; Z; Z; Z;r   