@@ -101,8 +101,8 @@ def __init__(
101101 log_level: (default: adapts to python global log level)
102102
103103 headless: (default: False)
104- Use headless mode. (Can also be specified with ChromeOptions.)
105- Warning: this lowers undetectability and is not fully supported.
104+ Use headless mode.
105+ (Already handled by seleniumbase/core/browser_launcher.py)
106106
107107 patch_driver: (default: True)
108108 Patches uc_driver to be undetectable if not already patched.
@@ -227,11 +227,6 @@ def __init__(
227227 "--password-store=basic" ,
228228 ]
229229 )
230- if headless or options .headless :
231- options .headless = True
232- options .add_argument ("--no-sandbox" )
233- # Fixes "could not connect to chrome" error when running
234- # on Linux when using a privileged user such as root.
235230 options .add_argument (
236231 "--log-level=%d" % log_level
237232 or divmod (logging .getLogger ().getEffectiveLevel (), 10 )[0 ]
@@ -304,8 +299,6 @@ def __init__(
304299 reactor = Reactor (self )
305300 reactor .start ()
306301 self .reactor = reactor
307- if options .headless :
308- self ._configure_headless ()
309302 self ._web_element_cls = WebElement
310303
311304 def __getattribute__ (self , item ):
@@ -325,56 +318,6 @@ def newfunc(*args, **kwargs):
325318 return newfunc
326319 return original
327320
328- def _configure_headless (self ):
329- orig_get = self .get
330- logger .info ("setting properties for headless" )
331-
332- def get_wrapped (* args , ** kwargs ):
333- if self .execute_script ("return navigator.webdriver" ):
334- logger .info ("patch navigator.webdriver" )
335- self .execute_cdp_cmd (
336- "Page.addScriptToEvaluateOnNewDocument" ,
337- {
338- "source" : """
339- Object.defineProperty(window, 'navigator', {
340- value: new Proxy(navigator, {
341- has: (target, key) => (
342- key === 'webdriver' ? false : key in target
343- ),
344- get: (target, key) =>
345- key === 'webdriver' ?
346- false :
347- typeof target[key] === 'function' ?
348- target[key].bind(target) :
349- target[key]
350- })
351- });
352- """
353- },
354- )
355- logger .info ("Patch user-agent string" )
356- self .execute_cdp_cmd (
357- "Network.setUserAgentOverride" ,
358- {
359- "userAgent" : self .execute_script (
360- "return navigator.userAgent"
361- ).replace ("Headless" , "" )
362- },
363- )
364- self .execute_cdp_cmd (
365- "Page.addScriptToEvaluateOnNewDocument" ,
366- {
367- "source" : """
368- Object.defineProperty(
369- navigator, 'maxTouchPoints', {
370- get: () => 1
371- })"""
372- },
373- )
374- return orig_get (* args , ** kwargs )
375-
376- self .get = get_wrapped
377-
378321 def __dir__ (self ):
379322 return object .__dir__ (self )
380323
0 commit comments