
    'hO*                     t    S SK Jr  S SKJr  S SKJr  S SKJr   " S S\5      r " S S5      r	 " S	 S
\5      r
g)    )Enum)Any)DesiredCapabilities)
ArgOptionsc                       \ rS rSrSrSrSrg)ElementScrollBehavior   r       N)__name__
__module____qualname____firstlineno__TOPBOTTOM__static_attributes__r       f/var/www/home/psychics-availability/venv/lib/python3.13/site-packages/selenium/webdriver/ie/options.pyr   r      s    
CFr   r   c                   .    \ rS rSrSrS rS rSS jrSrg)	_IeOptionsDescriptor   aY  _IeOptionsDescriptor is an implementation of Descriptor Protocol:

: Any look-up or assignment to the below attributes in `Options` class will be intercepted
by `__get__` and `__set__` method respectively.

- `browser_attach_timeout`
- `element_scroll_behavior`
- `ensure_clean_session`
- `file_upload_dialog_timeout`
- `force_create_process_api`
- `force_shell_windows_api`
- `full_page_screenshot`
- `ignore_protected_mode_settings`
- `ignore_zoom_level`
- `initial_browser_url`
- `native_events`
- `persistent_hover`
- `require_window_focus`
- `use_per_process_proxy`
- `use_legacy_file_upload_dialog_handling`
- `attach_to_edge_chrome`
- `edge_executable_path`


: When an attribute lookup happens,
Example:
    `self. browser_attach_timeout`
    `__get__` method does a dictionary look up in the dictionary `_options` in `Options` class
    and returns the value of key `browserAttachTimeout`
: When an attribute assignment happens,
Example:
    `self.browser_attach_timeout` = 30
    `__set__` method sets/updates the value of the key `browserAttachTimeout` in `_options`
    dictionary in `Options` class.
c                     Xl         X l        g N)nameexpected_type)selfr   r   s      r   __init___IeOptionsDescriptor.__init__B   s    	*r   c                 L    UR                   R                  U R                  5      $ r   )_optionsgetr   )r   objclss      r   __get___IeOptionsDescriptor.__get__F   s    ||		**r   Nc                 B   [        X R                  5      (       d.  [        U R                   SU R                  R                   35      eU R                  S:X  a/  U[
        R                  [
        R                  4;  a  [        S5      eX!R                  U R                  '   g )Nz should be of type elementScrollBehaviorz%Element Scroll Behavior out of range.)	
isinstancer   
ValueErrorr   r   r   r   r   r    )r   r"   values      r   __set___IeOptionsDescriptor.__set__I   s    %!3!344		{*=d>P>P>Y>Y=Z[\\99//E!%%!((B
 5
 DEE"'TYYr   )r   r   returnN)	r   r   r   r   __doc__r   r$   r+   r   r   r   r   r   r      s    "H++	(r   r   c                   8  ^  \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrSrSrSrSr\" \\5      r \" \\5      r \" \\5      r \" \	\5      r \" \
\5      r  \" \\5      r! \" \\5      r" \" \\5      r# \" \\5      r$ \" \\%5      r& \" \\5      r' \" \\5      r( \" \\5      r) \" \\5      r* \" \\5      r+ \" \\5      r, \" \\%5      r- S U 4S jjr.\/S\04S j5       r1\/S\04S j5       r2S\%SS4S jr3S\04S jr4\/S\04S j5       r5Sr6U =r7$ )!OptionsU   zse:ieOptionszie.browserCommandLineSwitchesbrowserAttachTimeoutr'   zie.ensureCleanSessionzie.fileUploadDialogTimeoutzie.forceCreateProcessApizie.forceShellWindowsApizie.enableFullPageScreenshotignoreProtectedModeSettingsignoreZoomSettinginitialBrowserUrlnativeEventsenablePersistentHoverrequireWindowFocuszie.usePerProcessProxyz$ie.useLegacyFileUploadDialogHandlingzie.edgechromiumzie.edgepathzie.ignoreprocessmatchr.   Nc                 >   > [         TU ]  5         0 U l        0 U l        g r   )superr   r    _additional)r   	__class__s    r   r   Options.__init__l  s    (*+-r   c                     U R                   $ )z*:Returns: A dictionary of browser options.)r    r   s    r   optionsOptions.optionsq  s     }}r   c                     U R                   $ )z!:Returns: The additional options.r<   r@   s    r   additional_optionsOptions.additional_optionsv  s     r   r   c                      X R                   U'   g)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
NrD   )r   r   r*   s      r   add_additional_optionOptions.add_additional_option{  s     "'r   c                 L   U R                   nU R                  R                  5       nU R                  (       a'  SR	                  U R                  5      X R
                  '   U R                  (       a  UR                  U R                  5        U(       a  X![        R                  '   U$ )z.Marshals the IE options to the correct object. )
_capsr    copy
_argumentsjoinSWITCHESr<   updater1   KEY)r   capsoptss      r   to_capabilitiesOptions.to_capabilities  sl    zz}}!!#??"%((4??";DKK(() $r   c                 >    [         R                  R                  5       $ r   )r   INTERNETEXPLORERrM   r@   s    r   default_capabilitiesOptions.default_capabilities  s    "3388::r   )r<   r    r-   )8r   r   r   r   rR   rP   BROWSER_ATTACH_TIMEOUTELEMENT_SCROLL_BEHAVIORENSURE_CLEAN_SESSIONFILE_UPLOAD_DIALOG_TIMEOUTFORCE_CREATE_PROCESS_APIFORCE_SHELL_WINDOWS_APIFULL_PAGE_SCREENSHOTIGNORE_PROTECTED_MODE_SETTINGSIGNORE_ZOOM_LEVELINITIAL_BROWSER_URLNATIVE_EVENTSPERSISTENT_HOVERREQUIRE_WINDOW_FOCUSUSE_PER_PROCESS_PROXY&USE_LEGACY_FILE_UPLOAD_DIALOG_HANDLINGATTACH_TO_EDGE_CHROMEEDGE_EXECUTABLE_PATHIGNORE_PROCESS_MATCHr   intbrowser_attach_timeoutr   element_scroll_behaviorboolensure_clean_sessionfile_upload_dialog_timeoutforce_create_process_apiforce_shell_windows_apifull_page_screenshotignore_protected_mode_settingsignore_zoom_levelstrinitial_browser_urlnative_eventspersistent_hoverrequire_window_focususe_per_process_proxy&use_legacy_file_upload_dialog_handlingattach_to_edge_chromeedge_executable_pathr   propertydictrA   rE   rH   rU   rY   r   __classcell__)r=   s   @r   r1   r1   U   sT   
C.H352!=978%B"+-"M./3-S*-(2 22H#N 33JDQ 00DdK "66PRU!V  44LdS 33JDQ 00DdK &::XZ^%_" -->E //BCH )=M ,,<dC 00DdK 11FM .BBhjn-o* 11FM 00DcJ.
     D    '# ' '  ;d ; ;r   r1   N)enumr   typingr   .selenium.webdriver.common.desired_capabilitiesr   !selenium.webdriver.common.optionsr   r   r   r1   r   r   r   <module>r      s8   "   N 8D 
5( 5(p@;j @;r   