a
    &h                     @   sh   d dl mZ d dlmZ d dlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ G d
d deZdS )    )Optional)WebDriverException)	WebDriver   )DriverFinder   )Options)SafariRemoteConnection)Servicec                       sh   e Zd ZdZdee ee dd fddZ fddZd	d
 Z	dd Z
dd Zdd Zdd Z  ZS )r   z>Controls the SafariDriver and allows you to drive the browser.TN)optionsservicereturnc                    s   |r|nt  | _|r|nt }| j p6t| j| | j_| jjsN| j  t	| jj
||jd}zt j||d W n ty   |    Y n0 d| _dS )a  Creates a new Safari driver instance and launches or finds a running
        safaridriver service.

        :Args:
         - keep_alive - Whether to configure SafariRemoteConnection to use
             HTTP keep-alive. Defaults to True.
         - options - Instance of ``options.Options``.
         - service - Service object for handling the browser driver if you need to pass extra details
        )remote_server_addr
keep_aliveignore_proxy)command_executorr   FN)r
   r   r   env_pathr   get_driver_pathpathreuse_servicestartr	   service_url_ignore_local_proxysuper__init__	Exceptionquit
_is_remote)selfr   r   r   executor	__class__ h/var/www/html/swiplay.fr/scambot/venv/lib/python3.9/site-packages/selenium/webdriver/safari/webdriver.pyr       s     
zWebDriver.__init__c                    sR   z8zt    W n ty"   Y n0 W | jjsN| j  n| jjsL| j  0 dS )z>Closes the browser and shuts down the SafariDriver executable.N)r   r   r   r   r   stopr   r    r"   r#   r   E   s    zWebDriver.quitc                 C   s.   t |tstd||i}| dd|i d S )Nz;Value of a session permission must be set to True or False.ZSET_PERMISSIONSpermissions)
isinstanceboolr   execute)r   
permissionvaluepayloadr"   r"   r#   set_permissionT   s    
zWebDriver.set_permissionc                 C   sD   |  dd }|d }|sd S ||vr*d S || }t|ts@d S |S )NZGET_PERMISSIONSr+   r&   )r)   r'   r(   )r   r*   r,   r&   r+   r"   r"   r#   get_permission\   s    
zWebDriver.get_permissionc                 C   s   |  d | d d S )NZATTACH_DEBUGGERz	debugger;)r)   execute_scriptr%   r"   r"   r#   debugl   s    
zWebDriver.debugc                 O   s   t d S NNotImplementedErrorr   argskwargsr"   r"   r#   download_filep   s    zWebDriver.download_filec                 O   s   t d S r1   r2   r4   r"   r"   r#   get_downloadable_filess   s    z WebDriver.get_downloadable_files)TNN)__name__
__module____qualname____doc__r   r   r
   r   r   r-   r.   r0   r7   r8   __classcell__r"   r"   r    r#   r      s      %r   N)typingr   selenium.common.exceptionsr   #selenium.webdriver.remote.webdriverr   RemoteWebDriverZcommon.driver_finderr   r   r   remote_connectionr	   r   r
   r"   r"   r"   r#   <module>   s   