История страницы
Открыть
...
браузер Версия 28 (Java)
Группа действий: Браузеры
...
Описание
Данное действие предназначено для открытия выбранного браузера. В момент открытия браузера создается контекст.
Настройки
Иконка действия
Параметры и их настройки
Свойство |
---|
Описание | Тип | Пример заполнения | Обязательность заполнения поля | |
---|---|---|---|---|
Параметры | ||||
Браузер |
Браузер, который необходимо открыть |
По |
умолчанию Chrome Выпадающий список:
| Строка | Yandex | Нет |
Свойства |
Список свойств браузера и их значений, которые будут установлены при запуске браузера |
В JSON формате, описывающий список свойств браузера и их значений, которые будут установлены при запуске |
Если параметр заполнен, его значения имеют преимущества перед значениями остальных полей |
Подключить расширения и задать профиль можно через этот параметр | Строка | JSON по шаблону | Нет |
Время явного ожидания |
Время на ожидание изменения свойств отдельных элементов |
Задается |
предельное значение времени ожидания для использования по умолчанию в действиях группы, определяющее время доступа к элементам |
Измеряется в миллисекундах |
Число | 10000 | Нет | |
Фоновый режим |
Background mode
Открытие в невидимом режиме |
Internet Explorer не поддерживает данную настройку |
Логический | false | Нет | |
Адрес |
URL, по которому должен быть выполнен переход после открытия браузера |
Строка | https://yandex.ru/ | Нет | |
Сохранить в |
Путь к папке, в которую должны сохраняться файлы при загрузке | Robin.FolderPath | C:\doc\img | Нет | |
Результаты | ||||
Контекст |
Контекст открытого сеанса работы с браузером, к которому будут обращаться дальнейшие действия |
Экземпляр браузера, с которым будет работать Selenium |
Контекст сеанса работы с браузером | Контекст браузера |
Особые условия использования
Пример
...
1. Заполнение поля "Свойства" (заполнено автоматически, путем записи действий в 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". |
args
Список строк
Часть свойств для запуска 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" вообще не ждет.
...
Пример 2. Сообщение об отсутствии драйвера
При выполнении действия "Открыть браузер" при использовании в файле env.cfg кодировки, отличной от UTF-8, например, с кириллицей - может возникнуть ситуация, когда при наличии драйвера, появляется сообщение об его отсутствии:
Результат: действие завершается с ошибкой, потому что драйвер не найден.
Причиной является проблема в кодировке файла env.cfg. В нашем примере на виртуальной машине файл был в кодировке Windows-1251:
Для того, чтобы отработало действие "Открыть браузер", нужно сконвертировать и пересохранить файл в кодировке UTF-8:
Действие будет запущено, робот завершится без ошибки. Браузер откроется.
Информация |
---|
Эту ситуацию можно воспроизвести с любой папкой, у которой есть кириллица в пути. При этом не обязательно, чтобы сам пользователь был записан кириллицей. |
Пример использования
Задача
Открыть
...
binary
...
Строка
...
...
Путь к исполняемому файлу Chrome для использования
...
extensions
...
Список строк
...
...
Список расширений Chrome для установки при запуске. Каждый элемент в списке должен иметь упакованное расширение Chrome в кодировке base-64 (.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".
Подробнее о свойствах по ссылке https://peter.sh/experiments/chromium-command-line-switches/#reduce-security-for-testing
Пример использования
Задача: открыть выбранный браузер на заданной странице, получить контекст действия для работы с действиями группы "Браузеры".
Решение
Воспользоваться : воспользоваться действием "Открыть браузер".
Реализация
...
- Открыть группу действий "Браузеры".
- Открыть подгруппу "Окна, вкладки, фреймы"
- .
- Добавить действие "Открыть браузер" на рабочую область.
- Настроить параметры действия.
...
- Поле "Браузер". Выбрать браузер из выпадающего списка, который необходимо открыть.
...
- \
- Поле "Свойства". Указать файл в формате JSON по шаблону, который задаст приоритетные свойства для запуска браузера.
...
...
- Поле "Время явного ожидания". Установить тайм-аут по времени - 1000мс.
...
- Поле "Фоновый режим". Значение "True" or "False". Оставить "False", что бы браузер открылся в видимом режиме.
...
...
- Поле "Адрес". Указать URL-адрес, по которому перейдет открывшийся браузер -
...
...
- Поле "Сохранить в". Указать адрес на ПК, куда сохраняться файлы, скачанные если в параметре "Адрес" будет указана ссылка на скачивание.
...
...
- Добавить действие "Закрыть браузер" на рабочую область. Заполнить параметр "Контекст".
...
- Запустить робота по кнопке "Старт" в верхней панели.
Результат: в
В видимом видимом режиме был открыть открыт браузер Edge, и был выполнен переход на страницу страницу https://yandex.ru/.