June 3

Функции в BrowserAutomationStudio

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

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

План статьи:

1. Зачем нужны функции, их преимущества

Основное предназначение функции — упрощение повторного использования логики и облегчение поддержки кода


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

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

Гораздо эффективнее оформить это действие в виде функции:

  1. Создайте функцию с действием «Спать»
  2. Настройте ее один раз
  3. Вызывайте эту функцию в любом месте проекта всего за пару кликов

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


2. Создание функций

1. Клик на кнопку инспектора функций

Открытие инспектора функций по нажатию

2. Клик на красный значок с плюсом для создания функции

3. Клик на кнопку «Подробнее», чтобы отобразить все поля функции

Результатом выполнения шагов, станет переход в настройки функции:

Настройки функции

2. Подробное описание всех разделов

Имя функции — это поле, в котором задается название функции. Рекомендуется использовать понятные и описательные названия, чтобы было легко понять назначение функции и быстро находить ее среди других

Например — LoadPage_SelAwait_MoveMouseAroundElem. В этом названии отражена суть функции:

    • LoadPage — загрузить страницу
    • SelAwait — ожидание селектора после загрузки страницы
    • MoveMouseAroundElem — двигать мышь возле элемента на странице
    • «_» — нижнее подчеркивание выполняет роль пробела

Описание функции — чтобы в дальнейшем вы не путались в других функциях, старайтесь оставлять описание

Этот параметр скрыт при вызове функции и виден только в редакторе функций

Возвращаемое значение функции — это результат, который функция передаёт после выполнения своей логики.
Если вы хотите, чтобы функция возвращала какое-либо значение (например, результат вычислений, путь к файлу, текст и т.д.), необходимо включить опцию «Возвращаемое значение»

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

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


Визуальное отображение всех свойств на примере функции LoadPage_SelAwait_MoveMouseAroundElem

Визуальное отображение всех свойств на примере функции LoadPage_SelAwait_MoveMouseAroundElem

Настройки параметра функции: Нажмите кнопку «Добавить параметр», чтобы открыть форму с полями для его настройки

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

  1. Имя: в это поле введите удобное имя параметра
  2. Тип: всего есть 6 разных вариаций для поля «Тип»:
  • Строка — значение передаётся в текстовом формате
  • Число — значение передаётся в числовом формате
  • Булевый тип — логическое значение, которое может быть только true или false
  • Выражение — значение может быть выражением, которое рассчитывается при выполнении скрипта
  • Строка или выражение — пользователь может выбрать: ввести строку или использовать выражение
  • Число или выражение — пользователь может выбрать: ввести число или использовать выражение
Число или выражение / Строка или выражение — если выбрать одну из этих опций, при вызове функции пользователь сможет выбрать тип значения через выпадающий список: ввод вручную или использование выражения.
В остальных случаях отображается только один фиксированный тип значения без выбора

Интерфейс выбора значения для поля «Строка или выражение»

  1. Описание: текстовое пояснение для параметра, которое отображается в виде подсказки (знак вопроса в интерфейсе функции)
  2. Значение по умолчанию: это автозаполняемое значение, подставляемое в параметр при вызове функции в логике проекта

Визуальное отображение всех параметров при вызове функции

Визуальное отображение всех параметров при вызове функции


3. Пример заполнения функции и ее вызова в логику проекта

1. Задача функции - LoadPage_SelAwait_MoveMouseAroundElem

  1. Загружать указанную страницу пользователем
  2. Ожидать Загрузки страницы
  3. Ожидание селектора
  4. Если в процессе выполнения функции произойдет ошибка, в возвращаемую переменную будет передано булевое значение false. Если же функция выполнится успешно — вернется true

2. Заполнение настроек функции

Имя функции: LoadPage_SelAwait_MoveMouseAroundElem

Описание функции: Загрузка страницы, ожидание селектора, двигает мышкой по селектору, после функция вернет результат работы в переменную RESULT_FUNCTION_LOAD


Возвращаемое значение: Включите опцию «Возвращаемое значение» и укажите имя переменной — RESULT_FUNCTION_LOAD


Описание возвращаемого значения: В поле описания можно указать следующее

«Если какое-либо действие в функции завершится с ошибкой, в возвращаемую переменную будет передано булевое значение false. Если функция выполнится успешно — будет возвращено true»

Заполненные свойства функции


Параметр #1

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

Скриншот заполненного параметра #1

Параметр #2

Второй параметр передает селектор для действия «Ожидание элемента». Тип — «Строка или выражение» для гибкости. Также задано значение по умолчанию для удобства и ускорения ввода

Скриншот заполненного параметра #2

После заполнения всех параметров и тела функции нажмите зеленую кнопку «Сохранить изменения», чтобы зафиксировать внесенные настройки


После сохранения изменений, BrowserAutomationStudio автоматически перенаправит вас в созданную функцию и добавит три базовых действия:

  1. Получить Параметр Функции - LINK_FOR_LOADSITE
  2. Получить Параметр Функции - SELECTOR_INPUT
  3. Return
  • Действие «Получить Параметр Функции» используется для приёма переданных в функцию ресурсов или значений. С его помощью внутри функции можно обращаться к этим параметрам и использовать их в логике выполнения
  • Действие «Return» используется для возврата результата из функции в основную логику проекта. Оно завершает выполнение функции и передаёт указанное значение в переменную, заданную при настройке возвращаемого результата

3. Вызов функции в логику проекта

Что бы вызвать функцию:

Перейдите в - модуль «Логика скрипта» действие «Вызов функции»

Вызов функции

Затем выберите функцию «LoadPage_SelAwait_MoveMouseAroundElem» из доступного списка

При открытии настроек вызова функции отображаются следующие четыре поля:

  1. Название функции
  2. Ссылка на сайт — параметр №1
  3. Селектор — параметр №2
  4. Возвращаемое значение

Ресурсы функции LoadPage_SelAwait_MoveMouseAroundElem

Заполнение полей при вызове функции

Теперь, чтобы корректно реализовать логику функции, необходимо передать в нее данные. Ниже приведен пример заполненной функции при ее вызове:

Заполнение полей при вызове функции

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

Чтобы параметры были правильно переданы функции, обязательно выполните действие «Вызов функции». В противном случае параметры будут иметь значение 'null
Выполнить действие «Вызов функции»

Итоговый код функции

Исходя из поставленной задачи, итоговая реализация функции выглядит следующим образом:

Код функции LoadPage_SelAwait_MoveMouseAroundElem (часть #1)

Код функции LoadPage_SelAwait_MoveMouseAroundElem (часть #2)

🎉 Функция готова

Спасибо за внимание!

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

Исходный проект статьи:

function_show_project.xml


Дополнительные материалы для изучения:
1. Пошаговое руководство о создании модуля в BrowserAutomationStudio
2. Локализация модуля. Как переименовать действия в модуле


Русскоязычный канал

YouTube-канал

Twitter