Как настроить ChromeDriver для запуска браузера Chrome в безголовом режиме через Selenium?
Я работаю над скриптом python для веб-очистки и пошел по пути использования Chromedriver в качестве одного из пакетов. Я хочу работать в фоновом режиме без каких-либо всплывающих окон. Я использую опцию "безголовый" на chromedriver, и, похоже, это делает работу с точки зрения не отображения окна браузера, однако, я все еще вижу .exe выполняется файл. Смотрите скриншот того, о чем я говорю. скриншот
Это код, который я использую для инициирования ChromeDriver:
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])
options.add_argument('headless')
options.add_argument('window-size=0x0')
chrome_driver_path = "C:Python27Scriptschromedriver.exe"
вещи, которые я пытался сделать, это изменить размер окна в параметрах на 0x0, но я не уверен, что сделал что-либо как .exe-файл все еще выскочил.
любые идеи, как я могу это сделать?
Я использую Python 2.7 FYI
4 ответов
Это должно выглядеть так:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu') # Last I checked this was necessary.
driver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options=options)
это работает для меня с помощью Python 3.6, я уверен,что он будет работать и для 2.7.
, работая с Клиент Селена 3.11.x, ChromeDriver V2-это.38 и Google Chrome v65.0.3325.181 на безголовый режим вы должны учитывать следующие моменты :
- вам нужно добавить аргумент --безголовый для вызова Chrome в безголовом режиме.
- для систем Windows необходимо добавить аргумент --disable-gpu
согласно Headless: make --disable-флаг gpu ненужный --disable-gpu
флаг не требуется на Системы Linux и в macOS.
по состоянию на SwiftShader не выполняет утверждение в Windows в безголовом режиме --disable-gpu
флаг станет ненужным на Системы Windows тоже.
-
аргумент start-maximized требуется для максимального видовое окно.
здесь ссылка на подробную информацию о видовое окно.
-
вам нужно добавить аргумент --no-sandbox для обхода модели безопасности ОС.
вот ссылка на песочница
The .exe будет работать в любом случае. Согласно Google - " работать в безголовом режиме, т. е. без пользовательского интерфейса или отображения зависимостей сервера."
лучше добавить 2 тире к аргументам командной строки, т. е.
options.add_argument('--headless')
в безголовом режиме также предлагается отключить GPU, т. е.
options.add_argument('--disable-gpu')
Итак, после исправления мой код:
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])
options.add_argument('--disable-gpu')
options.add_argument('--headless')
chrome_driver_path = "C:\Python27\Scripts\chromedriver.exe"
The .exe-файл по-прежнему появляется при запуске скрипта. Хотя это избавило меня от некоторых дополнительных выходных данных, говорящих мне "не удалось запустить процесс GPU".
что в конечном итоге работает, это запуск моего скрипта Python с помощью a .bat файл
Итак,
- сохранить скрипт python, если папка
-
откройте текстовый редактор и сбросьте следующий код (отредактируйте свой скрипт конечно)
c:\python27\python.exe c:\SampleFolder\ThisIsMyScript.py %*
сохранить .текстовый файл и меняем расширение на .летучая мышь!--2-->
- двойной клик для запуска файла
таким образом, это просто открыло скрипт в командной строке, и ChromeDriver, похоже, работает в этом окне, не выскакивая на переднюю часть экрана и, таким образом, решая проблему.