Заполнение поля "Свойства" (заполнено автоматически, путем записи действий в Recorder)

{"acceptInsecureCerts":true,
"browserName":"chrome",
"goog: loggingPrefs":{"browser":"ALL"},
"timeouts":{"implicit":0,"pageLoad":300003,"script":30003},
"unhandledPromptBehavior":"dismiss",
"goog:chromeOptions":{"args":["disable-popup-blocking","disable-notifications","no-sandbox"],"extensions":[]}}

Свойства браузера выглядят примерно следующим образом:

{"acceptInsecureCerts":true,
"browserName":"chrome",
"goog: loggingPrefs":{"browser":"ALL"},
"timeouts":{"implicit":0,"pageLoad":300003,"script":30003},
"unhandledPromptBehavior":"dismiss",
"goog:chromeOptions":{"args":["disable-popup-blocking","disable-notifications","no-sandbox","--disable-blink-features=AutomationControlled"],"extensions":[]}}


В путях до папок/файлов обратный слэш обязательно нужно экранировать (С:\\Users\\User или С:/Users/User ). 

Большинство возможностей доступно через объект ChromeOptions (выделены в свойствах жирным начертанием). Он используется для управления различными свойствами драйвера браузера. Поэтому данный объект интересует нас в большей степени.

Обозначается следующим образом:

"goog:chromeOptions":{"Опция 1": Значение 1, "Опция 2": Значение 2}.

Значений опций могут быть следующих типов:

В примере, в самом начале текста, использованы опции «args» и «extensions». Весь список опции объекта ChromeOptions представлен в таблице. Зеленым выделены наиболее часто используемые.

Имя опции

Тип

По умолчанию

Описание опции

args 

Список строк 


Список аргументов командной строки, используемых при запуске Chrome. Аргументы со связанным значением должны быть разделены знаком '=' (например, ‘args’ : ['start-maximized', 'user-data-dir=C:/Users/User/AppData/Local/Google/Chrome/User Data/Default']). Список аргументов Chrome.

binary

Строка


Путь к исполняемому файлу Chrome для использования.
В некоторых случаях бразуер может не запускаться, потому что путь к исполняемому файлу браузера определяется некорректно. В этом случае можно указать расположение файла с помощью свойства binary, что может решить проблему (известные случаи: запуск Yandex Browser на Alt Linux).

debuggerAddress

Строка


Адрес сервера отладчика Chrome для подключения в виде <hostname/ip:port>, например '127.0.0.1:38947'

detach

Логический тип

false 

Если значение равно false, Chrome будет закрыт, когда ChromeDriver будет убит, независимо от того, завершен ли сеанс. Если значение равно true, Chrome будет закрыт только в том случае, если сеанс завершен (или закрыт). Обратите внимание, что если значение равно true и сеанс не завершен, ChromeDriver не сможет очистить каталог временных данных пользователя, используемый запущенным экземпляром Chrome.

excludeSwitches

Список строк


Список переключателей командной строки Chrome, чтобы исключить передачу ChromeDriver по умолчанию при запуске Chrome. Указывать свитчи без префикса --.

extensions

Список строк


Список расширений Chrome для установки при запуске. Каждый элемент в списке должен иметь упакованное расширение Chrome в кодировке base-64 (.crx)

Получение crx расширения

localState

Словарь


Словарь с каждой записью, состоящей из названия предпочтения и его значения. Эти установки применяются к файлу локального состояния в папке пользовательских данных.

minidumpPath 

Строка


Каталог для хранения мини-дампов Chrome.  (Поддерживается только в Linux.)

mobileEmulation

Словарь


Словарь со значением "deviceName" или значениями для "deviceMetrics" и "userAgent". Дополнительные сведения см. в разделе Эмуляция мобильных устройств. https://chromedriver.chromium.org/mobile-emulation

Пример: "mobileEmulation": {"deviceName": "iPhone 12 Pro"}

prefs

Словарь


Словарь с каждой записью, состоящей из названия предпочтения и его значения. Эти настройки применяются только к используемому профилю пользователя. Примеры см. в файле «Preferences» в каталоге пользовательских данных Chrome (C:\Users\{User}\AppData\Local\Google\Chrome\User Data\{GoogleUser}).

windowTypes

Список строк


Список типов окон, которые будут отображаться в списке дескрипторов окон. Для доступа к элементам <webview> включите в этот список "webview".

Часть свойств для запуска Chrome/Яндекс:

{"goog:chromeOptions":{
   "args":[
    "-disable-blink-features=AutomationControlled",
    "disable-popup-blocking",
    "disable-notifications",
    "disable-infobars",
    "disable-gpu",
    "no-sandbox",
    "disable-extensions",
    "start maximized",
    "user-data-dir=C^//Users//robin_user//APPData//Local//Yandex//YandexBrowser//User Data",
    "profile-directory=Profile 1"
 ],
 "excludeSwitches":["enable-automation"],
 "extensions":[]
 }
}


ВАЖНО!

Строка  "excludeSwitches":["enable-automation"] позволяет отключить проверку на управление автоматизированным ПО, а аргумент "disable-extensions" блокирует загрузку плагинов. 

В процессе загрузки плагина проверяется, не работает ли браузер под управлением автоматизированного ПО.

Для того, чтобы загрузить плагин необходимо отключить проверку на управление автоматизированным ПО, а аргумент "disable-extensions" удалить.


Возможны ситуации, когда при загрузке страницы, страница пользователю видна и с ней можно взаимодействовать, при этом страница продолжает загрузку. Робот же останавливается и ожидает окончания загрузки страницы. Чтобы робот продолжил свою работу, нужно принудительно отменить загрузку.

Для этого нужно указать в свойствах "pageLoadStrategy":

{"acceptInsecureCerts":true,"browserName":"chrome","goog: loggingPrefs":{"browser":"ALL"},"pageLoadStrategy": "eager",
"timeouts":{"implicit":0,"pageLoad":300003,"script":30003},
"unhandledPromptBehavior":"dismiss",
"goog:chromeOptions":{"args":["disable-popup-blocking","disable-notifications","no-sandbox"],"extensions":[]}}

Кроме того, вместо значения "eager" можно указать значение "none", но тогда есть риск что страница не загрузится. Значение "eager" ждет только загрузки DOM страницы, не ожидая загрузки скриптов, изображений и других ресурсов, значение "none" вообще не ждет.