Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Открыть

...

браузер Версия 28 (Java)

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

...

Описание

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

Image Removed

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

Image Added

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

...

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

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

.

По

умолчанию Chrome.

умолчанию Chrome


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

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

Yandex

Нет

Расширенные настройки

Свойства

)

Advanced settings

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

.


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

.

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

.

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

.

Robin.String

или коллекция с несколькими выбранными значениями

Строка


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

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

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


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

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

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

Background mode

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

.


Internet Explorer не поддерживает данную

настройку.

настройку (вопрос)

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

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

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

Сохранить в

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

Robin.FolderPath

C:\doc\img

Нет

Значение для Тайм-аут

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

Time-out value

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

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

Число1000НетТип страницыPage type

Страница, c которой будет открыт браузер.

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

  • Пустая страница
  • Домашняя страница
  • Ранее открытые вкладки
  • Заданная страница

По умолчанию пустая страница.

Robin.StringПустая страницаНетURLURL

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

Поле будет доступно к заполнению после выбора значения "Заданная страница" в параметре "Тип страницы".

Строкаhttps://yandex.ru/НетПрофильProfile

Пользовательский профиль, под которым необходимо открыть браузер.

Текущий пользовательский профиль задается значением "default".

Если поле не заполнено, то браузер откроется в гостевом режиме.

Robin.StringdefaultНетПодключить расширенияEnable extensions

Будут подключены установленные расширения браузера, если они поддерживаются.

Robin.Boolean

Robin.FolderPath

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

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

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

Идентификатор сеанса браузераACTION_CONTEXT

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

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

Т.е. подключиться к существующему инстансу браузера невозможно, будет создан новый.

После завершения работы робота с браузером, браузер автоматически не закрывается. Требуется использование действия Закрыть браузер.

Настройки параметров запускаемого браузера зависят от конкретного браузера.

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

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


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

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

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

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

Блок кода
languageerl
themeEclipse
{"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":[]}}

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

Блок кода
languageerl
themeEclipse
{"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/Яндекс:

Блок кода
languageerl
themeEclipse
{"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":

Блок кода
languageerl
themeEclipse
{"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, например, с кириллицей - может возникнуть ситуация, когда при наличии драйвера, появляется сообщение об его отсутствии:
Image Added

Результат: действие завершается с ошибкой, потому что драйвер не найден.

Причиной является проблема в кодировке файла env.cfg. В нашем примере на виртуальной машине файл был в кодировке Windows-1251:
Image Added

Для того, чтобы отработало действие "Открыть браузер", нужно сконвертировать и пересохранить файл в кодировке UTF-8:
Image Added

Действие будет запущено, робот завершится без ошибки. Браузер откроется.

Информация
Эту ситуацию можно воспроизвести с любой папкой, у которой есть кириллица в пути. При этом не обязательно, чтобы сам пользователь был записан кириллицей.

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

Задача

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

Решение

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

Реализация

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

Результат

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