Как определить, является ли драйвер инициализатора selenium безголовым

#python-3.x #selenium-chromedriver #headless-browser

#python-3.x #selenium-chromedriver #безголовый браузер

Вопрос:

Допустим, у меня есть этот код

 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() , где я могу узнать, является ли данный браузер безголовым или нет.

Ответ №1:

 options = webdriver.ChromeOptions()
options.headless
  

Вернет True, если --headless аргумент установлен в ChomeOptions() , в противном случае вернет False.

Комментарии:

1. Но это если у вас есть доступ к параметрам, установленным в ChromeOptions(). Что мне требуется, так это инициализировать эту информацию из браузера

Ответ №2:

На основе официальной документации Selenium

options.headless

должен возвращать, установлен ли headless или нет

Ответ №3:

Если вы используете Firefox (протестировано в Firefox 106):

 if driver.caps.get("moz:headless", False):
     print("Firefox is headless")