a
    7ñ»jî¤  ã                L   @   sD   d Z ddlZddlZddlmZ G dd„ dƒZd	ejdœdd„ZdS )
ab  
The SeleniumBase Driver as a Python Context Manager or a returnable object.
###########################################################################

The SeleniumBase Driver as a context manager:
Usage --> ``with DriverContext() as driver:``

Example -->

```python
from seleniumbase import DriverContext

with DriverContext(uc=True) as driver:
    driver.get("https://google.com/ncr")
```

# (The browser exits automatically after the "with" block ends.)

###########################################################################
# Above: The driver as a context manager. (Used with a "with" statement.) #
# ----------------------------------------------------------------------- #
# Below: The driver as a returnable object. (Used with "return" command.) #
###########################################################################

The SeleniumBase Driver as a returnable object:
Usage --> ``driver = Driver()``

Example -->

```python
from seleniumbase import Driver

driver = Driver(uc=True)
driver.get("https://google.com/ncr")
```

###########################################################################
é    N)Ú	sb_driverc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚDriverContextc                 O   s   t |i |¤Ž| _d S ©N)ÚDriverÚdriver)ÚselfÚargsÚkwargs© r
   úIE:\soccer\ml_env\Lib\site-packages\seleniumbase/plugins/driver_manager.pyÚ__init__-   s    zDriverContext.__init__c                 C   s   | j S r   )r   )r   r
   r
   r   Ú	__enter__0   s    zDriverContext.__enter__c                 C   sP   z8t | dƒr6t | jdƒr6dtjvs,| jjjr6| j ¡  W n tyJ   Y n0 dS )Nr   ÚquitÚwin32F)Úhasattrr   ÚsysÚplatformZserviceÚprocessr   Ú	Exception)r   Úexc_typeÚexc_valÚexc_tbr
   r
   r   Ú__exit__3   s    ÿ
þüûzDriverContext.__exit__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r
   r
   r
   r   r   ,   s   r   )ÚreturncL           s   <   C   s  ddl m}L ddlm}M ddlm}N ddlm}O ddlm}P ddlm	}Q t
j}Rd |R¡}Sd	}Td
|Rv pjd|Rv }Ut|Ldƒoz|Lj}Vt|LdƒrŒ|Ljs¬t|Ldƒrœ|Ljs¬t|Ldƒr°|Ljr°d}T|T�r.t|Ldƒ�s.t|Ldƒ�r|Lj�rddl}Wd}X|Usö|Vsötd|X ƒ |U�s|V�s,|Wjdd� nt|Ldƒ�r:|Lj�r:tdƒ‚n|T�r:d|L_d|L_d|L_d|L_d}Yd}Zd}[g }\d	}]|0�r�tt|0ƒƒdk�r�tj t|0ƒ¡�r�d}]n|RD ]}^|^dv �r”d}]�q”| �r| |Pjj v �r|]�s|O !| ¡}_|_�rtj |_¡�r| |_ "¡  #d¡d  #d¡d v �r| |L_|_|L_|_}0d}]d|Rv �s,d|Rv �rB|Yd7 }Yd}Z|\ $d¡ d |Rv �sVd!|Rv �rl|Yd7 }Yd"}Z|\ $d ¡ d#|Rv �s€d$|Rv �r–|Yd7 }Yd%}Z|\ $d#¡ d&|Rv �sªd'|Rv �rÀ|Yd7 }Yd(}Z|\ $d&¡ d)|Rv �sÔd*|Rv �rê|Yd7 }Yd+}Z|\ $d)¡ d,|Rv �sþd-|Rv �r|Yd7 }Yd.}Z|\ $d,¡ d/|Rv �s(d0|Rv �rn|]�sn|O !d1¡}_tj |_¡�rn|Yd7 }Yd1}Zd1|L_d1|L_|_|L_|\ $d/¡ d2|Rv �s‚d3|Rv �rÈ|]�sÈ|O !d4¡}_tj |_¡�rÈ|Yd7 }Yd4}Zd4|L_d4|L_|_|L_|\ $d2¡ d5|Rv �sÜd6|Rv �r"|]�s"|O !d7¡}_tj |_¡�r"|Yd7 }Yd7}Zd7|L_d7|L_|_|L_|\ $d5¡ d8|Rv �s6d9|Rv �r||]�s||O !d:¡}_tj |_¡�r||Yd7 }Yd:}Zd:|L_d:|L_|_|L_|\ $d8¡ |Z}[d;|Rv �rª|Zdk�sª|Yd7 }Yd}[|\ $d;¡ d<|Rv �rÔ|Zd"k�sÔ|Yd7 }Yd"}[|\ $d<¡ d=|Rv �rþ|Zd%k�sþ|Yd7 }Yd%}[|\ $d=¡ d>|Rv �r(|Zd+k�s(|Yd7 }Yd+}[|\ $d>¡ d?|Rv �rR|Zd(k�sR|Yd7 }Yd(}[|\ $d?¡ d@|Rv �r¬|Zd1k�s¬|]�s¬|O !d1¡}_tj |_¡�r¬|Yd7 }Yd1}[d1|L_d1|L_|_|L_|\ $d@¡ dA|Rv �r|Zd4k�s|]�s|O !d4¡}_tj |_¡�r|Yd7 }Yd4}[d4|L_d4|L_|_|L_|\ $dA¡ dB|Rv �r`|Zd7k�s`|]�s`|O !d7¡}_tj |_¡�r`|Yd7 }Yd7}[d7|L_d7|L_|_|L_|\ $dB¡ dC|Rv �rº|Zd:k�sº|]�sº|O !d:¡}_tj |_¡�rº|Yd7 }Yd:}[d:|L_d:|L_|_|L_|\ $dC¡ |Ydk�rüdD}`|`dE|YdF |\¡f 7 }`|`dG7 }`|`dH7 }`| �süt|`ƒ‚| du �r|[�r|[} nd} n|  "¡ } |Pj%j&}a| |av�rBtdI| |af ƒ‚|Lj�rP|Lj} |du �rndJ|Rv �rjd}nd	}|du �rŒdK|Rv �rˆd}nd	}|�r–d}|du �r´dL|Rv �r°d}nd	}|du �rÂdM}|Edu�rÚ|du �rÚ|E}|du �rèdN}d	}b|dNk�rúd}b|du �rdO}|du �r&dP|Rv �r"d}nd	}|Fdu�r>|du �r>|F}|du �r\dQ|Rv �rXd}nd	}| du �rzdR|Rv �rvd} nd	} |!du �r˜dS|Rv �r”d}!nd	}!|8du�r°|7du �r°|8}7|7du �rÎdT|Rv �rÊd}7nd	}7dU}c|	}d|ddu �	r€dV|Sv �	r€dW|Sv �	r|S #dW¡d  #d¡d }dn"dX|Sv �	r0|S #dX¡d  #d¡d }d|d�	r€|d 'dY¡�	r\|d (dY¡�	r\|ddd… }dn$|d 'dZ¡�	r€|d (dZ¡�	r€|ddd… }d|)}e|edu �
rd[|Sv �
rd}f|RD ]n}^|^ 'd\¡�	rÆ|^ #d\¡d }e �
qn>|^d[k�
rt|Rƒ|fd k�
r|R|fd  }e|e 'd]¡�	rþd}e �
q|fd7 }f�	q |e})|/}g|gdu �
r¤d^|Sv �
r¤d}f|RD ]n}^|^ 'd_¡�
rZ|^ #d_¡d }g �
q¤n>|^d^k�
r˜t|Rƒ|fd k�
r˜|R|fd  }g|g 'd]¡�
r’d}g �
q¤|fd7 }f�
q4|g}/|5du �
rÀ|<du�
rÀ|<}5|5}h|hdu �rPd`|Sv �rPd}f|RD ]n}^|^ 'da¡�r|^ #da¡d }h �qPn>|^d`k�rDt|Rƒ|fd k�rD|R|fd  }h|h 'd]¡�r>d}h �qP|fd7 }f�
qà|h}5|5�rè|5 )db¡dk�rzdc|5 }`t|`ƒ‚|5 *ddd¡}5d}id}jz(t+|5 #db¡d ƒ}it+|5 #db¡d ƒ}jW n$ t�yÚ   de|5 }`t|`ƒ‚Y n0 |i|M_,|j|M_-|6du �r |=du�r |=}6|6}k|kdu �r�df|Sv �r�d}f|RD ]n}^|^ 'dg¡�rF|^ #dg¡d }k �q�n>|^dfk�r„t|Rƒ|fd k�r„|R|fd  }k|k 'd]¡�r~d}k �q�|fd7 }f�q |k}6|6�r4|6 )db¡dk�rºdh|6 }`t|`ƒ‚|6 *ddd¡}6d}ld}mz(t+|6 #db¡d ƒ}lt+|6 #db¡d ƒ}mW n$ t�y   di|6 }`t|`ƒ‚Y n0 |l|M_.|m|M_/|l|M_0|m|M_1|du �rÀdj|Sv �rÀd}f|RD ]n}^|^ 'dk¡�rv|^ #dk¡d } �qÀn>|^djk�r´t|Rƒ|fd k�r´|R|fd  }| 'd]¡�r®d} �qÀ|fd7 }f�qP|}nd}ot|Ldlƒ�râ|Lj�râ|Lj}0|0du �rxdm|Sv �rxd}f|RD ]n}^|^ 'dn¡�r$|^ #dn¡d }o �qnn>|^dmk�rbt|Rƒ|fd k�rb|R|fd  }o|o 'd]¡�r\d}o �qn|fd7 }f�qþ|o�rx|o}0|0du �r¸do|Sv �r¸|RD ]&}^|^ 'do¡�r�|^ #do¡d }0 �q¸�q�|K�rÊ|0�sÊdp}0n"|I�rÜ|0�sÜdq}0n|J�rì|0�sìdr}0ds|Rv �r|0�sdp}0n*dt|Rv �r|0�sdq}0ndu|Rv �r,|0�s,dr}0|0�rV|0 "¡ drk�rV| dk�rVd}d	}d	}d	}p|�rdd}pdv|Rv �s‚dw|Rv �s‚dx|Rv �rŠd}pd}|�s´|?�s´|>�s´|�s´|@�s´|�s´|A�r¸d}|�sÊ|?�sÊ|>�rÐd}n|dy|Rv �s*dz|Rv �s*d{|Rv �s*d||Rv �s*d}|Rv �s*d~|Rv �s*d|Rv �s*d€|Rv �s*d�|Rv �rHd}|du �rL|Adu �rLd}nd	}|�sX|A�r^d}n(d|Rv �s|d€|Rv �s|d�|Rv �r‚d}nd	}|�s’|@�rœd}d}n6d||Rv �sÄd}|Rv �sÄd~|Rv �sÄd‚|Rv �rÎd}d}nd	}|�rö| dƒv�röd„| | f }`t|`ƒ |du �rd…|Rv �sd†|Rv �rd}nd	}|Q 2¡ �r`|�s`|�s`|�s`|�r\d‡tj3 4¡ v�s\tj3d‡ �s`d}|p�rx|�rxd	}d	}d}|�r’| d%k�r’d	}d}n| dˆv�r d	}|du �rÒd‰|Rv �sÈdŠ|Rv �sÈd‹|Rv �rÎd}nd	}|du �r
|du �r
dŒ|Rv �sd�|Rv �sdŽ|Rv �r
d	}n>|du �r|du �s>|du�r.|�r>|du�rD|�rDd}nd	}|du �r�|Cdu �r�d�|Rv �s„d�|Rv �s„d‘|Rv �s„d’|Rv �rŠd}nd	}n|�sœ|C�r¢d}nd	}|du �rÄd“|Rv �rÀd}nd	}|du �râd”|Rv �rÞd}nd	}|du �r d•|Rv �rüd}nd	}|Hdu�r|2du �r|H}2|2�std–|Sv �rtd—|Rv �s<d˜|Rv �rBd™}2n2dš|Rv �sVd›|Rv �r\dœ}2nd�|Rv �spdž|Rv �rtdŸ}2|2du�rž|2 "¡ d v�r”td¡ƒ‚|2 "¡ }2nLd�|Rv �s²dž|Rv �r¸dŸ}2n2dš|Rv �sÌd›|Rv �rÒdœ}2nd—|Rv �sæd˜|Rv �rêd™}2|'du �rd¢|Rv �sd£|Rv �rd}'nd	}'|(du �r:d¤|Rv �s0d¥|Rv �r6d}(nd	}(|3du �rd|Gdu �rdd¦|Rv �r^d}3nd	}3n|3�sp|G�rvd}3nd	}3|4du �r¢d§|Rv �s˜d¨|Rv �ržd}4nd	}4|"du �rÊd©|Rv �sÀdª|Rv �rÆd}"nd	}"|#du �ròd«|Rv �sèd¬|Rv �rîd}#nd	}#|$du �rd­|Rv �rd}$nd	}$|Bdu�r(|du �r(|B}|du �rÀd®|Sv �rV|S #d®¡d  #dY¡d }njd¯|Sv �rz|S #d¯¡d  #d¡d }nFd°|Sv �rž|S #d°¡d  #dY¡d }n"d±|Sv �rÀ|S #d±¡d  #d¡d }|Ddu�rØ|%du �rØ|D}%|%du �r d²|Rv �söd³|Rv �rüd}%nd	}%|&du �rPd´|Sv �r.|S #d´¡d  #dY¡d }&n"dµ|Sv �rP|S #d¶¡d  #dY¡d }&|1du �rÜd·|Sv �rÜd}f|RD ]n}^|^ 'd¸¡�r’|^ #d¸¡d }1 �qÜn>|^d·k�rÐt|Rƒ|fd k�rÐ|R|fd  }1|1 'd]¡�rÊd}1 �qÜ|fd7 }f�ql|1du �rhd¹|Sv �rhd}f|RD ]n}^|^ 'dº¡�r|^ #dº¡d }1 �qhn>|^d¹k�r\t|Rƒ|fd k�r\|R|fd  }1|1 'd]¡�rVd}1 �qh|fd7 }f�qø| |Pjj v �r†|0�s†d} | |L_| }q|Nj5|q|||b||||d|
|||n|||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|,|-|.|/|0|1|2|3|4|c|7|9|:|;|qd»�:}r|rS )¼a  
    * SeleniumBase Driver as a Python Context Manager or a returnable object. *

    Example 1: (context manager format)
    -----------------------------------
    .. code-block:: python
        from seleniumbase import DriverContext

        with DriverContext() as driver:
            driver.get("https://google.com/ncr")

    Example 2: (as a Python returnable)
    -----------------------------------
    .. code-block:: python
        from seleniumbase import Driver

        driver = Driver()
        driver.get("https://google.com/ncr")

    Optional Parameters:
    --------------------
    browser (str):  Choose from "chrome", "edge", "firefox", or "safari".
    headless (bool):  Use the default headless mode for Chromium and Firefox.
    headless1 (bool):  Use Chromium's old headless mode. (Fast, but limited)
    headless2 (bool):  Use Chromium's new headless mode. (Has more features)
    headed (bool):  Run tests in headed/GUI mode on Linux, where not default.
    locale_code (str):  Set the Language Locale Code for the web browser.
    protocol (str):  The Selenium Grid protocol: "http" or "https".
    servername (str):  The Selenium Grid server/IP used for tests.
    port (int):  The Selenium Grid port used by the test server.
    proxy (str):  Use proxy. Format: "SERVER:PORT" or "USER:PASS@SERVER:PORT".
    proxy_bypass_list (str):  Skip proxy when using the listed domains.
    proxy_pac_url (str):  Use PAC file. (Format: URL or USERNAME:PASSWORD@URL)
    multi_proxy (bool):  Allow multiple proxies with auth when multi-threaded.
    agent (str):  Modify the web browser's User-Agent string.
    cap_file (str):  The desired capabilities to use with a Selenium Grid.
    cap_string (str):  The desired capabilities to use with a Selenium Grid.
    recorder_ext (bool):  Enables the SeleniumBase Recorder Chromium extension.
    disable_cookies (bool):  Disable Cookies on websites. (Pages might break!)
    disable_js (bool):  Disable JavaScript on websites. (Pages might break!)
    disable_csp (bool):  Disable the Content Security Policy of websites.
    enable_ws (bool):  Enable Web Security on Chromium-based browsers.
    disable_ws (bool):  Reverse of "enable_ws". (None and False are different)
    enable_sync (bool):  Enable "Chrome Sync" on websites.
    use_auto_ext (bool):  Use Chrome's automation extension.
    undetectable (bool):  Use undetected-chromedriver to evade bot-detection.
    uc_cdp_events (bool):  Capture CDP events in undetected-chromedriver mode.
    uc_subprocess (bool):  Use undetected-chromedriver as a subprocess.
    log_cdp_events (bool):  Capture {"performance": "ALL", "browser": "ALL"}
    no_sandbox (bool):  (DEPRECATED) - "--no-sandbox" is always used now.
    disable_gpu (bool):  (DEPRECATED) - GPU is disabled if not "swiftshader".
    incognito (bool):  Enable Chromium's Incognito mode.
    guest_mode (bool):  Enable Chromium's Guest mode.
    dark_mode (bool):  Enable Chromium's Dark mode.
    devtools (bool):  Open Chromium's DevTools when the browser opens.
    remote_debug (bool):  Enable Chrome's Debugger on "http://localhost:9222".
    enable_3d_apis (bool):  Enable WebGL and 3D APIs.
    swiftshader (bool):  Chrome: --use-gl=angle / --use-angle=swiftshader-webgl
    ad_block_on (bool):  Block some types of display ads from loading.
    host_resolver_rules (str):  Set host-resolver-rules, comma-separated.
    block_images (bool):  Block images from loading during tests.
    do_not_track (bool):  Tell websites that you don't want to be tracked.
    chromium_arg (str):  "ARG=N,ARG2" (Set Chromium args, ","-separated.)
    firefox_arg (str):  "ARG=N,ARG2" (Set Firefox args, comma-separated.)
    firefox_pref (str):  SET (Set Firefox PREFERENCE:VALUE set, ","-separated)
    user_data_dir (str):  Set the Chrome user data directory to use.
    extension_zip (str):  Load a Chrome Extension .zip|.crx, comma-separated.
    extension_dir (str):  Load a Chrome Extension directory, comma-separated.
    disable_features (str):  "F1,F2" (Disable Chrome features, ","-separated.)
    binary_location (str):  Set path of the Chromium browser binary to use.
    driver_version (str):  Set the chromedriver or uc_driver version to use.
    page_load_strategy (str):  Set Chrome PLS to "normal", "eager", or "none".
    use_wire (bool):  Use selenium-wire's webdriver over selenium webdriver.
    external_pdf (bool):  Set Chrome "plugins.always_open_pdf_externally":True
    window_position (x,y):  Set the browser's starting window position: "X,Y"
    window_size (w,h):  Set the browser's starting window size: "Width,Height"
    is_mobile (bool):  Use the mobile device emulator while running tests.
    mobile (bool):  Shortcut / Duplicate of "is_mobile".
    d_width (int):  Set device width
    d_height (int):  Set device height
    d_p_r (float):  Set device pixel ratio
    position (x,y):  Shortcut / Duplicate of "window_position".
    size (w,h):  Shortcut / Duplicate of "window_size".
    uc (bool):  Shortcut / Duplicate of "undetectable".
    undetected (bool):  Shortcut / Duplicate of "undetectable".
    uc_cdp (bool):  Shortcut / Duplicate of "uc_cdp_events".
    uc_sub (bool):  Shortcut / Duplicate of "uc_subprocess".
    locale (str):  Shortcut / Duplicate of "locale_code".
    log_cdp (bool):  Shortcut / Duplicate of "log_cdp_events".
    ad_block (bool):  Shortcut / Duplicate of "ad_block_on".
    server (str):  Shortcut / Duplicate of "servername".
    guest (bool):  Shortcut / Duplicate of "guest_mode".
    wire (bool):  Shortcut / Duplicate of "use_wire".
    pls (str):  Shortcut / Duplicate of "page_load_strategy".
    r   )Úconfig)Úsettings)Úbrowser_launcher)Údetect_b_ver)Ú	constants)Úshared_utilsú Fz--coz--collect-onlyÚall_scriptsÚ	is_behaveÚ	is_pytestÚis_nosetestTÚ_context_of_runnerNz8Skipping `Driver()` script. (Use `python`, not `pytest`)z	
  *** %s)Zallow_module_levelzt
  A Driver() script was triggered by nosetest collection!
  (Prevent that by using: ``if __name__ == "__main__":``)é   )ú--binary-locationz--binary_locationz--blú/éÿÿÿÿú\z--browser=chromez--browser chromeé   Úchromez--browser=edgez--browser edgeÚedgez--browser=firefoxz--browser firefoxZfirefoxz--browser=safariz--browser safariZsafariz--browser=iez--browser ieZiez--browser=remotez--browser remoteÚremotez--browser=operaz--browser operaÚoperaz--browser=bravez--browser braveÚbravez--browser=cometz--browser cometÚcometz--browser=atlasz--browser atlasÚatlasz--chromez--edgez	--firefoxz--iez--safariz--operaz--bravez--cometz--atlasz(

  TOO MANY browser types were entered!z
  There were %s found:
  >  %sz, z'
  ONLY ONE default browser is allowed!z(
  Select a single browser & try again!
zABrowser: {%s} is not a valid browser option. Valid options = {%s}z
--headlessz--headless1z--headless2ÚhttpÚ	localhostZ4444z--incognitoz--guestz--darkz
--devtoolsz--mobileZdirect_driverz--proxyz--proxy=z--proxy ú"ú'z--chromium-argz--chromium-arg=ú-z--disable-featuresz--disable-features=z--window-positionz--window-position=ú,zF

  window_position expects an "x,y" string!
  (Your input was: "%s")
Ú zL

  Expecting integer values for "x,y"!
  (window_position input was: "%s")
z--window-sizez--window-size=zJ

  window_size expects a "width,height" string!
  (Your input was: "%s")
zQ

  Expecting integer values for "width,height"!
  (window_size input was: "%s")
z--agentz--agent=Ú_cdp_bin_locr*   z--binary-location=z--bl=Z
_chromium_ÚcftÚchsz--use-chromiumz--cftz--chsz
--recorderz--recordz--recz--undetectablez--undetectedz--ucz--uc-cdp-eventsz--uc_cdp_eventsz--uc-cdpz--uc-subprocessz--uc_subprocessz--uc-subz--uc_cdp)r/   r2   r3   r4   r5   z´
  Undetected-Chromedriver Mode ONLY supports Chromium browsers!
  ("uc=True" / "undetectable=True" / "--uc")
  (Your browser choice was: "%s".)
  (Will use "%s" without UC Mode.)
z--guiz--headedZDISPLAY)r/   r0   r2   r3   r4   r5   z--disable-cspz--no-cspz--dcspz--disable-web-securityz--disable-wsz--dwsz--log-cdp-eventsz--log_cdp_eventsz	--log-cdpz	--log_cdpz--use-auto-extz--disable-cookiesz--disable-jsz--pls=z
--pls=nonez--pls="none"Únonez--pls=eagerz--pls="eager"Úeagerz--pls=normalz--pls="normal"Únormal)rB   rA   r@   z8page_load_strategy must be "normal", "eager", or "none"!z--block-imagesz--block_imagesz--do-not-trackz--do_not_trackz--wirez--external-pdfz--external_pdfz--remote-debugz--remote_debugz--enable-3d-apisz--enable_3d_apisz--swiftshaderz
--locale="z	--locale=z--locale-code="z--locale-code=z
--ad-blockz
--ad_blockz--host-resolver-rules="z--host_resolver_rules="z--host_resolver_rules=z--driver-versionz--driver-version=z--driver_versionz--driver_version=):Úbrowser_nameÚheadlessÚlocale_codeÚuse_gridÚprotocolÚ
servernameÚportÚproxy_stringÚproxy_bypass_listÚproxy_pac_urlÚmulti_proxyÚ
user_agentÚcap_fileÚ
cap_stringÚrecorder_extÚdisable_cookiesÚ
disable_jsÚdisable_cspÚ	enable_wsÚenable_syncÚuse_auto_extÚundetectableÚuc_cdp_eventsÚuc_subprocessÚlog_cdp_eventsÚ
no_sandboxÚdisable_gpuÚ	headless1Ú	headless2Ú	incognitoÚ
guest_modeÚ	dark_modeÚdevtoolsÚremote_debugÚenable_3d_apisÚswiftshaderÚad_block_onÚhost_resolver_rulesÚblock_imagesÚdo_not_trackÚchromium_argÚfirefox_argÚfirefox_prefÚuser_data_dirÚextension_zipÚextension_dirÚdisable_featuresÚbinary_locationÚdriver_versionÚpage_load_strategyÚuse_wireÚexternal_pdfÚtest_idZmobile_emulatorZdevice_widthZdevice_heightZdevice_pixel_ratioÚbrowser)6Zseleniumbaser   Zseleniumbase.configr   Úseleniumbase.corer   r    Zseleniumbase.fixturesr!   r"   r   ÚargvÚjoinr   r$   r%   r&   r'   ÚpytestÚprintÚskipr   r(   Z_browser_shortcutZ_cdp_browserr=   ÚlenÚstrÚosÚpathÚexistsZChromiumSubsZchromium_subsZget_binary_locationÚlowerÚsplitÚappendZValidBrowsersÚvalid_browsersÚ
startswithÚendswithÚcountÚreplaceÚintZWINDOW_START_XZWINDOW_START_YZCHROME_START_WIDTHZCHROME_START_HEIGHTZHEADLESS_START_WIDTHZHEADLESS_START_HEIGHTZis_linuxÚenvironÚkeysZ
get_driver)srx   rD   r^   r_   ZheadedrE   rG   rH   rI   ÚproxyrK   rL   rM   ZagentrO   rP   rQ   rR   rS   rT   rU   Z
disable_wsrV   rW   rX   rY   rZ   r[   r\   r]   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   Zwindow_positionZwindow_sizeZ	is_mobileZmobileZd_widthZd_heightZd_p_rÚpositionÚsizeZucZ
undetectedZuc_cdpZuc_subÚlocaleZlog_cdpZad_blockÚserverZguestZwireZplsr>   r?   Zuse_chromiumZ	sb_configr   r   r    r!   r"   Zsys_argvZarg_joinZexisting_runnerZcollect_onlyr$   r|   ÚmsgZbrowser_changesZbrowser_setZbrowser_textZbrowser_listZbin_loc_in_optionsÚargZbin_locÚmessager‡   rF   rw   rJ   Zc_arŠ   Zd_fZw_pZwin_xZwin_yZw_sÚwidthÚheightrN   Zfound_blZrecorder_moderC   r   r
   r
   r   r   C   s     .
ÿÿþþýýÿþÿÿþý
ÿ
þý
"



























þ

ÿÿ





















ÿÿþÿÿÿÿÿ
ÿ
þýÿþýÿþýüûúù	ÿþýüûúùø	÷ÿþýÿþýüÿþýÿ
ÿþýüúùø

ÿþýÿÿýüûÿÿþþýýÿþýü






ÿ










ÿ
ÿ
ÿ
ÿ


ÿ
ÿÆ<r   )LNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)Ú__doc__r�   r   ry   r   r   ZDriverMethodsr   r
   r
   r
   r   Ú<module>   s¦   &                                                                            ´M³