Работа платформы ROBIN с браузерами

Инструкция по добавлению драйвера для браузера

Платформа ROBIN работает с веб-страницами через драйвера, которые выпускаются под каждый браузер. В составе дистрибутива ROBIN предоставляются последние версии необходимых драйверов на момент выпуска очередного обновления платформы. Однако, при очередном обновлении браузера могут потребоваться более новые версии драйверов, тогда при открытии браузера робот будет отображать предупреждение: «<название действия> не удалось запустить. Требуется драйвер для «Chrome»/<версия хрома>».

При возникновении такой ошибки, обновите драйвер.

Драйвера для соответствующего браузера можно установить в Настройках ROBIN Studio (вкладка «Браузер»), начиная с версии 2.14.1. После установки драйвера через настройки студии, файл env.cfg (конфигурационный файл для робота и работы web-recorder) будет создан автоматически.

Подробнее о заполнении полей данной формы в разделе «Настройки».

Также драйвера можно скачать самостоятельно из следующих источников:

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

  1. Скачать версию драйвера для соответствующей версии браузера.
  2. Разместить скаченный драйвер в файловой системе. Например, в корень диска С.
  3. Создать папку с именем «.robin» в профиле текущего пользователя. В Windows это обычно: «C:/Users/{имя текущего пользователя}».

При создании папки через интерфейс в Windows может возникнуть ошибка:

При возникновении ошибки, следует вводить имя не «.robin», а «.robin.» (с точкой в конце).

Папка создастся с именем «.robin».

  1. В папке необходимо создать файл:

env.cfg - конфигурационный файл для робота и работы web-recorder (если установлена версия платформы до 2.14.1, то необходимо создать 2 файла: env.cfg и webSpyEnv.cfg)

Файлы можно создать с помощью Блокнот. При сохранении файла следует указать расширение .cfg, выбрав в окне сохранения «тип файла» значение «All types (.)».

  1. Заполняются файлы в следуюшем формате:

[webdrivers]

webdriver.[название браузера].[версия браузера].path=[абсолютный путь к драйверу], где *[название браузера] - тип браузера из списка: * chrome * firefox * ie * yandex

[версия браузера] - версия загруженного драйвера браузера, в формате, пишется v**XX**, где XX числовой номер версии драйвера

[абсолютный путь к драйверу] - при указании пути к файлу драйвера ставится обратный слэш \

Внимание! Конфиг работает с заголовком [webdrivers]

Для применения работы слеша необходимо заменить его на обратный

Примеры заполнения:

Шаблон

[webdrivers]

webdriver.chrome.v105.path=C:/chromedriver.exe

webdriver.chrome.v106.path=C:/chromedriver.exe

webdriver.chrome.v107.path=C:/chromedriver.exe

Важно! При версии платформы менее 2.14.1 должны быть созданы 2 файла:

  1. Сохранить config файлы в папку «.robin». Теперь роботы и студия в случае отсутствия нужного драйвера в дистрибутиве будут использовать драйвера, указанные в конфигурационных файлах.

В версии ROBIN Platform, начиная с 2.14.1, появилась возможность указывать startArgs в env.cfg. В параметре %BrowserName%Args можно указать набор аргументов для запуска драйвера в соответствующих конфигу компонентах, пример:

В секции profile, в параметре %BrowserName%Profile можно указать путь к профилю, под которым будет запускаться браузер:

Также аргументы запуска и профиль можно указать в ROBIN Studio в окне настроек.

Проверить корректность запуска с аргументами можно в chrome://version/

В версии ROBIN Platform до 2.14.1, Web-recorder и Робот (работа действий) используют разные конфиги. Web-recorder считывает параметры из файла webSpyEnv.cfg, действия из файла env.cfg. В версии платформы 2.13.1 стартовые аргументы и профиль для Chrome указываются в других секциях и параметрах. Аргументы указываются в секции startChromeArgs в env.cfg и webSpyEnv.cfg. В параметре args можно указать набор аргументов для запуска драйвера в соответствующих конфигу компонентах. Профиль указывается в секции profile и параметре profile.

Конфигурация Internet Explorer

Для работы Программного робота необходимо сконфигурировать браузер Internet Explorer. Ссылка на источник: https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver

Для этого необходимо выполнить следующие шаги:

  1. Для IE 7 и выше на Windows Vista или Windows 7. Необходимо установить Защищенный режим для каждой зоны в одинаковом положении – вкл./ выкл.

Для этого перейдите в Настройки → Свойства браузера → Вкладка «Безопасность» → Для каждой зоны поставить/ убрать галочку напротив „Включить защищенный режим“.

  1. Для IE 10 и выше. Настройка «Включить расширенный защищенный режим» должна быть отключена. Эту опцию можно найти в Свойствах браузера → Вкладка „Дополнительно“ → Пункт „Безопасность“.

  2. Уровень масштабирования браузера должен быть установлен на 100%, чтобы события мыши могли быть установлены в правильные координаты.

Чтобы проверить масштабирование, необходимо открыть Настройки → Масштаб → Установить значение в 100%

  1. Для Windows 10. Необходимо установить «Изменение размера текста, приложений и других элементов» в значении 100%.

Откройте Пуск → Настройки → Дисплей → «Изменение размера текста, приложений и других элементов» установить в значении 100%.

  1. Только для IE 11. Нужно установить запись реестра на целевом компьютере, чтобы драйвер браузера мог поддерживать соединение с экземпляром создаваемого Internet Explorer.

Для 32-битной Windows:

Открываем редактор реестра: ПКМ по Пуск → Выполнить → вводим regedit в поле Открыть и нажимаем ОК.
Далее переходим в раздел HKEY_LOCAL_MACHINE → SOFTWARE → Microsoft Internet Explorer → Main → FeatureControl →FEATURE_BFCACHE.
В случае, если раздела FEATURE_BFCACHE нет, его необходимо создать. ПКМ по FeatureControl → Создать → Раздел
Внутри раздела создайте „Параметр DWORD (32 бита)“ с именем „iexplore.exe“ со значением 0.

Для 64-битной Windows:

Открываем редактор реестра: ПКМ по Пуск → Выполнить → вводим regedit в поле Открыть и нажимаем ОК.
Далее переходим в раздел HKEY_LOCAL_MACHINE → SOFTWARE → Wow6432Node → Microsoft → Internet Explorer → Main → FeatureControl → FEATURE_BFCACHE.
В случае, если раздела FEATURE_BFCACHE нет, его необходимо создать. ПКМ по FeatureControl → Создать → Раздел
Внутри раздела создайте „Параметр DWORD (32 бита)“ с именем „iexplore.exe“ со значением 0.

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

В процессе выполнения сценариев роботов может появиться необходимость скачивать файлы из браузера в конкретную папку, а не в папку «Загрузки». Для этого неаобходимо изменить каталог по умолчанию для скачивания из браузера. Для этого надо выполнить действия:

  1. Открыть настройки в браузере «Chrome».

  2. На открывшейся вкладке выбрать опцию «Дополнительные»:

  3. В раскрывшемся подменю выбрать пункт «Скачанные файлы»:

  4. Затем нажать кнопку «Изменить»:

  5. Выбрать папку для скачивания файлов.

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

Установка расширения браузера для работы Web Spy и Web Recorder

Для корректной работы Web Spy и Web Recorder необходимо, чтобы была разрешена установка расширения браузера.

Последовательность шагов при установке расширения браузера

Для установки расширения браузера необходимо выполнить следующие шаги:

  1. Запустить редактор реестра. Для этого можно нажать клавиши Win+R на клавиатуре, ввести regedit и нажать Enter.

  2. Перейти к разделу реестра: HKEY_LOCAL_MACHINE/SOFTWARE/Policies

  3. Удалить параметр DWORD, с именем BlockExternalExtensions в папке Chrome.

  4. Создать папку ExtensionInstallAllowlist (если её нет), где номерными параметрами указываются id разрешенных к установке расширений.

Надо указать id расширения используемого платформой - femchkbhcokdgnklbagaobfaaajggimd

Работа с указанием профиля и без профиля при наличии ограничений в реестре:

Вариант 1. В этом варианте не указан профиль, и при наличии ограничений в реестре рекордер и шпион будут работать под новым профилем (RobinWebEnv)

Порядок действий:

  • Добавить id femchkbhcokdgnklbagaobfaaajggimd в список исключений.
  • При первом запуске рекордера будет создан новый профиль. Далее необходимо перейти в Настройки браузера -> Расширения, включить режим разработчика, затем установить расширение (найти его можно в директории 2.0.0UtilsWebSpyRobinPlugin.crx).
  • Необходимо включить пункт «Разрешить открывать локальные файлы по ссылкам» в свойствах расширения.
  • Закрыть браузер.
  • Еще раз запустить рекордер/шпион.

Вариант 2. В этом варианте в конфиге указывается профиль, с которым нужно взаимодействовать при записи.

ВАЖНО: ПРИ ОТСУТСТВИИ ОГРАНИЧЕНИЙ РАБОТА БУДЕТ ТАКЖЕ ОСУЩЕСТВЛЯТЬСЯ ЧЕРЕЗ ПРОФИЛЬ.

Порядок действий:

  • Добавить id femchkbhcokdgnklbagaobfaaajggimd в список исключений.
  • Необходимо перейти в Настройки браузера -> Расширения, включить режим разработчика, затем установить расширение (найти его можно в директории 2.0.0UtilsWebSpyRobinPlugin.crx).
  • Необходимо включить пункт «Разрешить открывать локальные файлы по ссылкам» в свойствах расширения.
  • Указать в файле webSpyEnv.cfg путь к профилю в блоке profile.

Пример:

[profile]

profile = %USERPROFILE%AppDataLocalGoogleChromeUser DataProfile 1

  • После этого необходимо закрыть все окна браузера, работающие под выбранным профилем (это необходимо перед каждым запуском шпиона/рекордера), а затем запустить запись.
  1. Запустить Web Recorder или Web Spy. Браузер будет открыт с расширением.

Примечание: С материалами по запрещению установки расширения можно ознакомиться по ссылке: https://remontka.pro/block-extensions-install-google-chrome

Запуск с профилем для всех браузеров

Для решения задач, где требуется работа в браузере под определенной учетной записью, существует возможность запуска браузера с профилем. В Robin Studio существует возможность работы с такими браузерами, как «Яндекс.Браузер», «Chrome», «MozillaFirefox» и «Internet Explorer». Шаги для решения этой задачи описаны ниже:

Браузер «Chrome»

  1. Выбрать действие «Открыть браузер», из группы действий «Браузер» .

  2. Выбрать «Chrome» в параметрах действия в строке «Браузер».

  3. Указать описывающий список свойств браузера и их значений, которые будут установлены при запуске, в строке «Свойства», в формате JSON.

Шаблон:

{«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»,»user-data-dir=%USERPROFILE%//AppData//Local//Google//Chrome//User Data//Default»],»extensions»:[]}}

  1. %USERPROFILE%//AppData//Local//Google//Chrome//User Data//Default необходимо заменить на актуальный путь.

Пример заполнения полей:

  1. Запустить робота. Браузер откроется с профилем.

Примечание

При указании профиля может использоваться 2 параметра путь к папке профилей - user-data-dir и имя профиля - profile-directory, а не только user-data-dir. Действия работают именно с таким форматом указания профиля.

Яндекс.Браузер

  1. Выбрать действие «Открыть браузер» из группы действий «Браузер».

  2. Выбрать «Yandex» в параметрах действия в строке «Браузер».

  3. Указать описывающий список свойств браузера и их значений, которые будут установлены при запуске, в строке «Свойства», в формате JSON.

Шаблон:

{«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»,»user-data-dir=C://Users//USER//AppData//Local//Yandex//YandexBrowser//User Data», «profile-directory=Default»],»extensions»:[]}}

  1. %USER%//AppData//Local//Yandex//YandexBrowser//User Data - заменить в пути «USER» на своего пользователя и в самом конце проставить нужный профиль, если это не «Default».

Пример заполнения полей:

  1. Запустить робота. Браузер откроется с профилем.

Браузер «MozillaFirefox»

  1. Выбрать действие «Открыть браузер» из группы действий «Браузер».

  2. Выбрать «Firefox» в параметрах действия в строке «Браузер».

  3. Указать описывающий список свойств браузера и их значений, которые будут установлены при запуске, в строке «Свойства», в формате JSON.

Шаблон:

{«acceptInsecureCerts»:true,»browserName»:»firefox»,»timeouts»:{«implicit»:0,»pageLoad»:300003,»script»:30003},»unhandledPromptBehavior»:»dismiss»,»moz:firefoxOptions»: {«args»:[«-profile», «%USERPROFILE%//AppData//Roaming//Mozilla//Firefox//Profiles//ProfileDir»], «prefs»:{}}}

  1. %USERPROFILE%//AppData//Roaming//Mozilla//Firefox//Profiles//ProfileDir требуется заменить на актуальный путь до папки с профилем.

Пример папки с профилем:

Пример заполнения полей:

Браузер «Internet Explorer»

У браузера Internet Explorer нет профилей, соответственно отсутствуют параметры для такого варианта запуска.

Динамическая замена Xpath

Xpath - язык запросов к элементам xml или html документа.

Действия студии группы «Браузеры» обращаются к элементам страницы по их пути в html разметке. Путь до элемента задается в параметре действий «XPath» с помощью языка XPath.

Для получения нескольких веб-элементов, имеющих практически одинаковые значения Xpath, необходимо организовать динамическую замену Xpath посредством функционала ROBIN Studio.

Используя действия Robin Studio в значении XPath, сохраненном в текстовую переменную, происходит замена части, которая различна в XPath каждого веб-элемента.

Рассмотрим порядок работы XPath более подробно.

  1. Создать переменную с типом данных «Строка», в качестве значения переменной указать полный XPath элемента, где различающаяся часть будет заменена каким-либо словом. Пример заполнения:

Значение Xpath:

  1. Выбрать действие «Заменить по шаблону» из группы «Текст».

  2. Заполнить параметры действия:

  • Параметр «Текст» - указать созданную ранее переменную, в которой храниться XPath.
  • Параметр «Шаблон» - указать регулярное выражение для сопоставления, т. е. то слово, которое необходимо заменить.
  • Параметр «Подстановка» - указать новое значение для текста, который необходимо заменить.

Пример заполнения параметров:

  1. В параметре «Результат» указать XPath веб-элемента, XPath которого нужно изменить.

Пример:

  1. Затем, после заполнения параметра «Элемент» какого-либо действия группы «Браузеры» переменной, чей XPath указан для сохранения результата в действии «Заменить по шаблону», действие будет выполнено с измененным XPath.

Для лучшего понимания рассмотрим кейс по динамической замене XPath.

Кейс «Планы закупок»

Задача: С сайта «Портал поставщиков» получить наименование заказчика первых 5 планов закупки, сохранив это в excel-файл.

Решение:

  1. Перенесем на рабочую область действия:
  • «Открыть браузер», «Закрыть браузер» из группы действий «Браузеры»;
  • «Открыть», «Сохранить», «Закрыть» из группы действий «Excel»;
  • «Для» группы «Базовые действия»;

Пример:

  1. Заполнить параметры действий:
  1. Действие «Открыть браузер» - выбрать из выпадающего списка браузер «Chrome», в строке «Адрес» указать ссылку на сайт «Портал поставщиков», вкладку с планами закупок. Пример:

  2. Действие «Закрыть браузер» - контекст браузера.

  3. Действие «Открыть» -в параметре «Путь к файлу» указать путь до excel-файла.

  4. Действия «Сохранить» и «Закрыть» - указать для параметра «Контекст» указать открытый ранее excel-файл.

  5. Действие «Для»:

  • «Начальное значение» -1;
  • «Конечное значение» - 5;
  • «Итератор» - 1;
  1. Проанализировать XPath веб-элемента:

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

  1. Создать переменную с типом данных «Строка», значение которой будет XPath заказчика, где изменяющаяся цифра будет заменена словам «Заказчик».

Пример:

  1. Заполнить тело цикла действиями «Конвертировать данные» из группы действий «Базовые действия», «Заменить по шаблону» из группы действий «Текст», «Получить текст» из группы действий «Браузер» и «Установить значение ячейки» из группы действий «Excel».

Пример:

  1. Заполнить параметры действий:
  1. Действие «Конвертировать данные»:

Параметр «Источник» - состояние итератора цикла «Для»; Параметр «Тип» - «Строка».

Пример:

  1. Действие «Получить текст»:

Параметр «Контекст» - экземпляр открытого ранее браузера; Параметр «Элемент» - веб элемент, который необходимо создать.

Пример:

Для создания веб-элемента необходимо выполнить следующие шаги:

  1. Из доступных способов заполнения параметра выбрать «Добавление нового ресурса».

  2. Заполнить параметры «DisplayName», например, «Заказчик» и «Default Attribute», выбрав из выпадающего списка значение «XPath».

  3. Нажать кнопку «Сохранить».

  4. В действии «Заменить по шаблону» указать:

  • Параметр «Текст» - созданная ранее переменная «XPath заказчик»;

  • Параметр «Шаблон» - слово «ЗАКАЗЧИК», которое будет заменено;

  • Параметр «Подстановка» - результат действия «Конвертация данных».

Параметр «Результат» - XPath веб-элемента «Заказчик».

  1. В действии «Установить значение ячейки» указать:
  • Параметр «Контекст» - экземпляр открытого excel-файла;
  • Параметр «Ячейка» - с помощью инструмента построения выражений заполнить данный параметр;

Посредством действия «Соединить из группы «Текст» соединить номер столбца «А» и номер строки, равный состоянию итератора цикла. Так как соединяются текстовые значения, указать результат действия «Конвертация данных».

Параметр «Значение» - результат действия «Получить текст».

  1. Запустить робота.

  2. Результат работы робота - заполненный excel-файл.

Обработка появляющихся диалоговых окон при работе в браузерах

При работе в браузерах могут возникать ошибки, и, как реакция на них -появление диалоговых окон в ходе работы с браузером. Эти окна не числятся как элементы в коде страницы.

Такие ошибки при работе с браузером можно обработать при помощи группы «Браузеры» подгруппы «Диалоговые окна».

Рассмотрим пример по работе с диалоговыми окнами.

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

Для считывания информации из окна ошибки и для его закрытия необходимо воспользоваться действиями «Получить текст окна диалога» и «Принять окно диалога».

При настройке действия «Получить текст окна диалога» заполнить поле «Контекст». В результате получится переменная строкового типа.

Действие «Принять окно диалога» - действие подходит для окон у которых, например, есть кнопка «Да» и робот должен ее нажать, при этом это действие не будет совершаться горячими клавишами. В данном случае, альтернативой действию «Принять окно диалога» можно считать действие «Отклонить окно диалога».

После запуска робота в логах действия «Получить текст окна диалога» будет отображен текст: