Открыть браузер Версия 28 (Java)
Группа действий: Браузеры
Описание
Данное действие предназначено для открытия выбранного браузера. В момент открытия браузера создается контекст.
Иконка действия
Параметры и их настройки
Свойство | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|
Параметры | ||||
Браузер | Браузер, который необходимо открыть По умолчанию Chrome Выпадающий список:
| Строка | Yandex | Нет |
Свойства | Список свойств браузера и их значений, которые будут установлены при запуске браузера В JSON формате, описывающий список свойств браузера и их значений, которые будут установлены при запуске Если параметр заполнен, его значения имеют преимущества перед значениями остальных полей Подключить расширения и задать профиль можно через этот параметр | Строка | JSON по шаблону | Нет |
Время явного ожидания | Время на ожидание изменения свойств отдельных элементов Задается предельное значение времени ожидания для использования по умолчанию в действиях группы, определяющее время доступа к элементам Измеряется в миллисекундах | Число | 10000 | Нет |
Фоновый режим | Открытие в невидимом режиме 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":[]}}
Большинство возможностей доступно через объект 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" вообще не ждет.
Пример 2. Сообщение об отсутствии драйвера
При выполнении действия "Открыть браузер" при использовании в файле env.cfg кодировки, отличной от UTF-8, например, с кириллицей - может возникнуть ситуация, когда при наличии драйвера, появляется сообщение об его отсутствии:
Результат: действие завершается с ошибкой, потому что драйвер не найден.
Причиной является проблема в кодировке файла env.cfg. В нашем примере на виртуальной машине файл был в кодировке Windows-1251:
Для того, чтобы отработало действие "Открыть браузер", нужно сконвертировать и пересохранить файл в кодировке UTF-8:
Действие будет запущено, робот завершится без ошибки. Браузер откроется.
Пример использования
Задача
Открыть выбранный браузер на заданной странице, получить контекст действия для работы с действиями группы "Браузеры".
Решение
Воспользоваться действием "Открыть браузер".
Реализация
- Открыть группу действий "Браузеры".
- Открыть подгруппу "Окна, вкладки, фреймы".
- Добавить действие "Открыть браузер" на рабочую область.
- Настроить параметры действия.
- Поле "Браузер". Выбрать браузер из выпадающего списка, который необходимо открыть. \
- Поле "Свойства". Указать файл в формате JSON по шаблону, который задаст приоритетные свойства для запуска браузера.
- Поле "Время явного ожидания". Установить тайм-аут по времени - 1000мс.
- Поле "Фоновый режим". Значение "True" or "False". Оставить "False", что бы браузер открылся в видимом режиме.
- Поле "Адрес". Указать URL-адрес, по которому перейдет открывшийся браузер - https://yandex.ru/
- Поле "Сохранить в". Указать адрес на ПК, куда сохраняться файлы, скачанные если в параметре "Адрес" будет указана ссылка на скачивание.
- Добавить действие "Закрыть браузер" на рабочую область. Заполнить параметр "Контекст".
- Запустить робота по кнопке "Старт" в верхней панели.
Результат
В видимом режиме был открыт браузер Edge, и был выполнен переход на страницу https://yandex.ru/.