Пошаговое руководство по созданию модуля в BAS
В этой статье вы узнаете, как пошагово создавать модули в BrowserAutomationStudio на примере простого модуля «Эмуляция страницы»
В рамках материала мы разработаем базовый модуль, включающий несколько ключевых действий — от эмуляции поведения браузера до сохранения скриншотов. Этот пример поможет вам понять структуру модулей и принципы их создания
Данная статья была подготовлена на основе старой версии интерфейса. Несмотря на возможные визуальные изменения, функциональность и последовательность действий остались актуальными
1. Что такое модули и их преимущества
Модуль — это набор функций, объединенных в одном месте. Он помогает структурировать проект, ускоряет разработку и позволяет повторно использовать код в разных проектах BAS
Если простыми словами — представьте себе небольшую упаковочную коробку. В неё можно сложить разные вещи: посуду, микрофон, чашку, чтобы было удобно переносить вещи. Так вот, модуль — это и есть такая коробка. Внутри нее находятся разные функции, и каждая выполняет свою задачу: чашка — для питья, микрофон — для записи звука. Точно так же и функции в модуле выполняют конкретные действия внутри вашего скрипта
Вся панель инструментов BrowserAutomationStudio представляет собой каталог разнообразных модулей, каждый из которых предназначен для выполнения определенных задач
- Экономия времени — с помощью модулей вы избавляетесь от необходимости каждый раз создавать одни и те же функции с нуля. Достаточно один раз разработать модуль и использовать его в любых проектах BAS, где он требуется
- Оптимизация и читабельность кода — модули позволяют «спрятать» сложный код за одним удобным кубиком. Ваш проект станет выглядеть аккуратнее и нагляднее
- Улучшенная поддержка обновления кода — если необходимо изменить функциональность в отдельных частях, достаточно внести изменения в модуль, обновить его и действия проекта
Технология модулей — ключ к упрощению повседневной работы. Давайте разберемся, как пошагово создать модуль на примере Emulator Module
2. Создание модуля для эмуляции страниц Emulator Module
Задача модуля
- Перейти на указанную веб-страницу. После ее загрузки модуль должен эмулировать активность пользователя, при этом продолжительность работы задаётся пользователем
- Сделать скриншот по указанному селектору, и сохранить его в директорию проекта
Для создания модуля необходимо понимать, как работают функции в BrowserAutomationStudio. Ознакомиться с их работой вы можете в этой статье: Подробнее о функциях
В BrowserAutomationStudio действия в модуле реализованы через функции, нам нужно создать функцию и заполнить ее. Из задачи модуля Emulator Module, можно понять, что нам нужно создать две функции:
- Функция №1: Перейдет на страницу сайта → Ожидание Полной Загрузки страницы → действие «Начать эмуляцию бездействия»
- Функция №2: Скриншот → сохранение скриншота → вывод информации в лог → вернуть пользователю модуля в переменную путь к скриншоту
Проект модуля
Чтобы быстро продемонстрировать создание модуля, мы подготовили проект Emulator_Module, содержащий основную логику
Также в проект заранее добавлены две функции, которые мы создавали ранее. Их реализацию мы опустили, чтобы сразу перейти к демонстрации работы модуля
Функция №1
Задача: перейти на страницу указанную пользователем модуля (параметр #1), эмулировать работу указанное число времени (параметр #2)
- Имя функции: Load_site_await_emulation
- Описание функции: Действие загрузки страницы и эмуляции
- Возвращаемое значение: (Эта опция не требуется для текущей задачи)
- Параметр #1: Пользователь вводит ссылку на сайт. Тип — «Строка или выражение», чтобы дать пользователю модуля максимальную свободу действий
- Параметр #2: Пользователь выбирает тип «Число или выражение» по аналогии с первым параметром
Итоговый вид функции №1
Важно! При использовании сторонних модулей ваш модуль становится от них зависим. Если нужный модуль не установлен в проекте (у вас или у конечного пользователя), работа вашего модуля будет нарушена
Функция №2
Задача: Сделать скриншот по переданному пользователем модуля селектору, после сохранить скриншот и вывести в лог путь к скриншоту (параметр #1)
- Имя функции: screenshot_and_save_screenshot_to_png
- Описание функции: Данное действие сделает скриншот всего экрана, после чего сохранит его в директорию проекта с форматом .png
- Возвращаемое значение: Путь сохранения скриншота. Пользователю модуля вернется в переменную «MODULE_EMUL_SCREENSHOT_PATH» место размещения скриншота
- Параметр #1: Пользователь модуля должен передать селектор для действия «Скриншот»
Итоговый вид функции №2
Дополнительно к функциям:
1. Передача ресурсов в функции модуля
При написании функций для вашего модуля, чтобы передать ресурсы в функцию, необходимо вызвать ее с помощью действия «Вызов функции» (модуль «Логика скрипта» → действие «Вызов функции») и заполнить параметры нужными ресурсами
⚠️ Важно: если вы не выполните действие «Вызов функции», параметры не будут переданы, и их значения останутся null
Для удобства тестирования рекомендуется использовать функцию «MAIN». Она выполняется во время отладки, но при компиляции модуля автоматически исключается из финальной сборки
3. Полезные подсказки при создании модулей
3. Установка и использование модуля
После подготовки двух функций, следующим этапом является их интеграция и компиляция в полноценный модуль
Восемь шагов к компиляции модуля
1. Завершите работу над скриптом
Установка модуля невозможна, пока выполняется скрипт
2. Перейдите в окно «Менеджер Модулей»
Расположение: верхняя панель BrowserAutomationStudio, кнопка «Менеджер Модулей»
В инструменте «Менеджер Модулей» доступны следующие настройки:
- Создать / Установить модуль
- Поиск
- Просмотреть все существующие модули
- Отключить/включить модуль с помощью комбобокса справа от названия
- Открыть папку с модулем, кликнув по заголовку модуля
- Увидеть версию, название и описание модуля
3. Для компиляции модуля нажмите кнопку «Создать модуль»
4. Выбор функций для компиляции
Ранее, на этапе разработки, были созданы две функции. Теперь наступает следующий шаг — их компиляция в полноценный модуль
5. Описание модуля и его название
Нажмите на кнопку «Показать больше», чтобы раскрыть и увидеть все доступные поля
На изображении ниже слева показаны соответствующие поля, а также их внешний вид в интерфейсе модуля
6. Загрузите логотип для модуля
Независимо от исходного размера логотипа, он будет автоматически масштабирован до формата 32×32 пикселя
7. Выбор дополнительных параметров
При переходе на страницу с дополнительными параметрами компиляции модуля отображаются два флажка (чекбокса):
- Случайное название функции (рекомендуется) — если в разных модулях используются одинаковые названия функций, это может привести к конфликтам. Включение этой опции помогает избежать подобных ситуаций
- Установить модуль сразу после создания — эта опция позволяет автоматически установить скомпилированный модуль, а при обновлении автоматически заменяет старую версию на новую, и устанавливает обновленную в проект
Оставим две галочки активными и перейдем к финалу компиляции модуля
8. Финал — модуль скомпилирован и установлен в проект
- После нажатия кнопки «Finish» — BrowserAutomationStudio скомпилировал модуль и автоматически открыл папку, где он находится в формате
.zip
- Модуль автоматически установился в наш проект. Это можно проверить, открыв окно «Менеджер модулей»
- Модуль так же показывается в каталоге других модулей
Дополнительная информация:
- Если вам нужно обновить модуль без повторного прохождения всех шагов, в диалоговом окне компиляции нажмите кнопку «Пропустить»
Благодарим за ваше внимание
В данной статье мы рассмотрели простой модуль, состоящий из нескольких функций. Однако представьте, сколько времени можно сэкономить, если вы начнете создавать модули и комбинировать их с более сложными повседневными алгоритмами!
Исходники для практики:
- Модуль из статьи.zip | Исходник модуля.xml
- Идеи для модулей можно найти по следующей ссылке
Вы можете поделиться своим модулем, как это сделали десятки других авторов ❤️
Ветка модулей на форуме — RU | EN
Дополнительные материалы для изучения:
1. Функции в BrowserAutomationStudio
2. Локализация модуля. Как переименовать действия в модуле