#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")