Открыть браузер Версия 28 (Java)

Группа действий: Браузеры


Описание

Данное действие предназначено для открытия выбранного браузера. В момент открытия браузера создается контекст.

Иконка действия

Параметры и их настройки

СвойствоОписаниеТипПример заполненияОбязательность заполнения поля
Параметры
Браузер

Браузер, который необходимо открыть

По умолчанию Chrome


Выпадающий список:

  • Chrome
  • Яндекс
  • Firefox
  • Internet Explorer
  • Edge (chromium)
Строка

Yandex

Нет

Свойства

Список свойств браузера и их значений, которые будут установлены при запуске браузера


В JSON формате, описывающий список свойств браузера и их значений, которые будут установлены при запуске

Если параметр заполнен, его значения имеют преимущества перед значениями остальных полей

Подключить расширения и задать профиль можно через этот параметр

Строка


JSON по шаблонуНет

Время явного ожидания

Время на ожидание изменения свойств отдельных элементов


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

Измеряется в миллисекундах

Число10000Нет
Фоновый режим

Открытие в невидимом режиме


Internet Explorer не поддерживает данную настройку (вопрос)

Логический falseНет
Адрес

URL, по которому должен быть выполнен переход после открытия браузера

Строкаhttps://yandex.ru/Нет

Сохранить в

Путь к папке, в которую должны сохраняться файлы при загрузке

Robin.FolderPath

C:\doc\img

Нет
Результаты
Контекст

Контекст открытого сеанса работы с браузером, к которому будут обращаться дальнейшие действия


Экземпляр браузера, с которым будет работать Selenium

Контекст сеанса работы с браузеромКонтекст браузера

Особые условия использования 

Пример заполнения поля "Свойства" (заполнено автоматически, путем записи действий в 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}.

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

  • Строка – "text";
  • Список строк – ["text1", "text2"];
  • Словарь - {"key1": "value1","key2": "value2"};
  • Логический тип – false/true.

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

Имя опции

Тип

По умолчанию

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

args 

Список строк 


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

binary

Строка


Путь к исполняемому файлу Chrome для использования

extensions

Список строк


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

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

localState

Словарь


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

prefs

Словарь


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

detach

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

false 

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

debuggerAddress

Строка


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

excludeSwitches

Список строк


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

minidumpPath 

Строка


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

mobileEmulation

Словарь


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

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

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" вообще не ждет.


Для запуска браузера в режиме инкогнито нужно использовать:

Пример использования

Задача

Открыть выбранный браузер на заданной странице, получить контекст действия для работы с действиями группы "Браузеры".

Решение

Воспользоваться действием "Открыть браузер". 

Реализация

  1. Открыть группу действий "Браузеры".
  2. Открыть подгруппу "Окна, вкладки, фреймы".
  3. Добавить действие "Открыть браузер" на рабочую область. 
  4. Настроить параметры действия.
    1. Поле "Браузер". Выбрать браузер из выпадающего списка, который необходимо открыть. \
    2. Поле "Свойства". Указать файл в формате JSON по шаблону, который задаст приоритетные свойства для запуска браузера.
    3. Поле "Время явного ожидания". Установить тайм-аут по времени - 1000мс.
    4. Поле "Фоновый режим". Значение "True" or "False". Оставить "False", что бы браузер открылся в видимом режиме.
    5. Поле "Адрес". Указать URL-адрес, по которому перейдет открывшийся браузер - https://yandex.ru/
    6. Поле "Сохранить в". Указать адрес на ПК, куда сохраняться файлы, скачанные если в параметре "Адрес" будет указана ссылка на скачивание.
  5. Добавить действие "Закрыть браузер" на рабочую область. Заполнить параметр "Контекст".
  6. Запустить робота по кнопке "Старт" в верхней панели.

Результат

В видимом режиме был открыт браузер Edge, и был выполнен переход на страницу https://yandex.ru/.

  • Нет меток