
    vKg                     V    S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r
   " S S\
5      rg)	    )ChromiumRemoteConnection)DriverFinder)
ArgOptions)Service)	WebDriverc                     ^  \ rS rSrSrSS\" 5       SS4S\S\S\S\S	\S
S4U 4S jjjr	S r
S rSS jrSS jrS\S\S
S4S jrS\S\4S jrS
\4S jrS rS\S
\4S jrS\S
\4S jrS\S
\4S jrS\S
\4S jrSU 4S jjrSrU =r$ ) ChromiumDriver   zVControls the WebDriver instance of ChromiumDriver and allows you to
drive the browser.NTbrowser_namevendor_prefixoptionsservice
keep_alivereturnc                   > X@l         [        U R                   U5      nUR                  5       (       a  UR                  5       Ul        SUl        U R                   R                  5       =(       d    UR                  5       U R                   l        U R                   R                  5         [        U R                   R                  UUUUR                  S9n [        TU ]5  XsS9  SU l        g! [         a    U R                  5         e f = f)a  Creates a new WebDriver instance of the ChromiumDriver. Starts the
service and then creates new WebDriver instance of ChromiumDriver.

:Args:
 - browser_name - Browser name used when matching capabilities.
 - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands.
 - options - this takes an instance of ChromiumOptions
 - service - Service object for handling the browser driver if you need to pass extra details
 - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive.
N)remote_server_addrr   r   r   ignore_proxy)command_executorr   F)r   r   get_browser_pathbinary_locationbrowser_versionenv_pathget_driver_pathpathstartr   service_url_ignore_local_proxysuper__init__	Exceptionquit
_is_remote)	selfr   r   r   r   r   finderexecutor	__class__s	           e/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/selenium/webdriver/chromium/webdriver.pyr   ChromiumDriver.__init__   s    $ dllG4""$$&,&=&=&?G#&*G# LL113Ov7M7M7O+#||77%'! 44
	GhH
  	  	IIK	s   C* *Dc                 *    U R                  SSU05      $ )z&Launches Chromium app specified by id.	launchAppidexecute)r#   r+   s     r'   
launch_appChromiumDriver.launch_appI   s    ||K$44    c                 *    U R                  S5      S   $ )zGets Chromium network emulation settings.

:Returns:
    A dict.
    For example:     {'latency': 4, 'download_throughput': 2, 'upload_throughput': 2, 'offline': False}
getNetworkConditionsvaluer,   r#   s    r'   get_network_conditions%ChromiumDriver.get_network_conditionsM   s     ||23G<<r0   c                 ,    U R                  SSU05        g)a  Sets Chromium network emulation settings.

:Args:
 - network_conditions: A dict with conditions specification.

:Usage:
    ::

        driver.set_network_conditions(
            offline=False,
            latency=5,  # additional latency (ms)
            download_throughput=500 * 1024,  # maximal throughput
            upload_throughput=500 * 1024)  # maximal throughput

    Note: 'throughput' can be used to set both (for download and upload).
setNetworkConditionsnetwork_conditionsNr,   )r#   r9   s     r'   set_network_conditions%ChromiumDriver.set_network_conditionsV   s    " 	+.BDV-WXr0   c                 &    U R                  S5        g)z+Resets Chromium network emulation settings.deleteNetworkConditionsNr,   r4   s    r'   delete_network_conditions(ChromiumDriver.delete_network_conditionsi   s    ./r0   namer3   c                 2    U R                  SSU0US.5        g)zSets Applicable Permission.

:Args:
 - name: The item to set the permission on.
 - value: The value to set on the item

:Usage:
    ::

        driver.set_permissions('clipboard-read', 'denied')
setPermissionsr@   )
descriptorstateNr,   )r#   r@   r3   s      r'   set_permissionsChromiumDriver.set_permissionsm   s     	%vtnu'UVr0   cmdcmd_argsc                 0    U R                  SXS.5      S   $ )aT  Execute Chrome Devtools Protocol command and get returned result The
command and command args should follow chrome devtools protocol
domains/commands, refer to link
https://chromedevtools.github.io/devtools-protocol/

:Args:
 - cmd: A str, command name
 - cmd_args: A dict, command args. empty dict {} if there is no command args
:Usage:
    ::

        driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': requestId})
:Returns:
    A dict, empty dict {} if there is no result to return.
    For example to getResponseBody:
    {'base64Encoded': False, 'body': 'response body string'}
executeCdpCommand)rG   paramsr3   r,   )r#   rG   rH   s      r'   execute_cdp_cmdChromiumDriver.execute_cdp_cmd{   s    $ ||/1QRSZ[[r0   c                 *    U R                  S5      S   $ )z-:Returns: A list of sinks available for Cast.getSinksr3   r,   r4   s    r'   	get_sinksChromiumDriver.get_sinks   s    ||J'00r0   c                 *    U R                  S5      S   $ )zE:Returns: An error message when there is any issue in a Cast
session.getIssueMessager3   r,   r4   s    r'   get_issue_message ChromiumDriver.get_issue_message   s     ||-.w77r0   	sink_namec                 *    U R                  SSU05      $ )zSets a specific sink, using its name, as a Cast session receiver
target.

:Args:
 - sink_name: Name of the sink to use as the target.
setSinkToUsesinkNamer,   r#   rV   s     r'   set_sink_to_useChromiumDriver.set_sink_to_use   s     ||NZ,CDDr0   c                 *    U R                  SSU05      $ )zStarts a desktop mirroring session on a specific receiver target.

:Args:
 - sink_name: Name of the sink to use as the target.
startDesktopMirroringrY   r,   rZ   s     r'   start_desktop_mirroring&ChromiumDriver.start_desktop_mirroring   s     ||3j)5LMMr0   c                 *    U R                  SSU05      $ )z{Starts a tab mirroring session on a specific receiver target.

:Args:
 - sink_name: Name of the sink to use as the target.
startTabMirroringrY   r,   rZ   s     r'   start_tab_mirroring"ChromiumDriver.start_tab_mirroring   s     ||/*i1HIIr0   c                 *    U R                  SSU05      $ )zStops the existing Cast session on a specific receiver target.

:Args:
 - sink_name: Name of the sink to stop the Cast session.
stopCastingrY   r,   rZ   s     r'   stop_castingChromiumDriver.stop_casting   s     ||MJ	+BCCr0   c                    >  [         TU ]  5         U R                  R	                  5         g! [         a     N'f = f! U R                  R	                  5         f = f)z@Closes the browser and shuts down the ChromiumDriver executable.N)r   r!   r    r   stop)r#   r&   s    r'   r!   ChromiumDriver.quit   sJ    	 GLN
 LL	  		 LLs   , 
9< 9< A)r"   r   )r   N)__name__
__module____qualname____firstlineno____doc__r   strr   boolr   r.   r5   r:   r>   rE   dictrL   listrP   rT   r[   r_   rc   rg   r!   __static_attributes____classcell__)r&   s   @r'   r	   r	      s   
 !!(l* *  *  	* 
 *  *  
*  * X5=Y&0WC W W W\3 \$ \(14 18
E E EN N NJS JT JDc Dd D   r0   r	   N)-selenium.webdriver.chromium.remote_connectionr   'selenium.webdriver.common.driver_finderr   !selenium.webdriver.common.optionsr   !selenium.webdriver.common.servicer   #selenium.webdriver.remote.webdriverr   RemoteWebDriverr	    r0   r'   <module>r~      s%   $ S @ 8 5 Lh _ h r0   