Как сделать безголовый браузер видимым Python

Я создал безголовый хром-браузер с веб-драйвером, установив этот аргумент:

 chrome_options.add_argument("--headless")

а затем открыть браузер, используя:

driver = webdriver.Chrome(executable_path=os.path.abspath("chromedriver"), chrome_options=chrome_options)

Можно ли заставить браузер появиться после выполнения условия? Я попытался снова удалить атрибут, используя:

chrome_options.arguments.remove("--headless")

но это ничего не делает.


person K Kreid    schedule 25.12.2017    source источник


Ответы (3)


Поскольку вы инициировали --headless google-chrome экземпляр, установив:

chrome_options.add_argument("--headless")

кроме того, невозможно снова сделать Контекст просмотра видимым в рамках одного и того же сеанса.


Причина

При настройке ChromeDriver используя ChromeOptions(), чтобы инициировать headless в процессе инициирования новый Сеанс просмотра Chrome, конфигурация запекается в исполняемом файле chromedriver и сохраняется до времени существования WebDriver и остается недоступным для редактирования. Таким образом, вы изменяете ChromeOptions экземпляра WebDriver, который в данный момент выполняется.

Даже если вы можете извлечь атрибуты ChromeDriver и ChromeSession, например. Идентификатор сеанса, Файлы cookie и другие атрибуты сеанса из уже инициированного ChromeDriver и Сеанс просмотра Chrome по-прежнему не будут иметь возможность изменять набор атрибутов ChromeDriver.

Более чистым способом было бы вызвать driver.quit() в методе tearDown(){}, чтобы закрыть и уничтожить текущий ChromeDriver и Экземпляры браузера Chrome изящно, а затем охватывают новый набор экземпляров ChromeDriver и Браузер Chrome с новым набором конфигураций.


использованная литература

Вы можете найти пару соответствующих обсуждений в:

person DebanjanB    schedule 21.08.2020

когда вы передаете параметр --headless в chrome, он фактически создает экземпляр как безголовый, а не создает окно и скрывает его, если вы хотите показать экземпляр при выполнении условия, вы должны рассмотреть возможность использования --headless в chrome параметры

person Shailyn Ortiz    schedule 25.12.2017

Вы не сможете удалить параметры/аргументы из своих сеансов Selenium после того, как сеанс был запущен. Каждый сеанс Selenium создается с использованием уникального идентификатора сеанса и выполняется с переданными ему параметрами до тех пор, пока не будет запрошен .quit(). Вы не сможете наблюдать за работой сеанса Chrome, если передадите ему параметр --headless при запуске.

person Nicholas Martinez    schedule 26.12.2017