如何检测Selenium初始化程序驱动程序是否没有头

问题描述

假设我有代码

options = webdriver.ChromeOptions()

options.add_argument('--headless')
options.add_argument("window-size=1920,1080")

browser=webdriver.Chrome(options=options,executable_path=r"chromedriver.exe")
browser.execute_cdp_cmd('Network.setUserAgentOverride',{"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/83.0.4103.53 Safari/537.36'})

如何通过编程检查初始化的浏览器是否无头?我的意思是,如果我键入 browser.get_window_size()我得到{'width': 1920,'height': 1080},如果我写browser.execute_script('return navigator.languages'),它将返回['en-US','en']

我正在寻找的是browser.is_headless()之类的东西,无论给定的浏览器是否无头,我都能得到它。

解决方法

基于官方Selenium documentation

options.headless

应该返回是否设置无头

,
options = webdriver.ChromeOptions()
options.headless

将返回 True ,如果将--headless参数设置为ChomeOptions(),否则将返回 False