Выполнить JS
Eng: Execute JS
Элемент запускает JavaScript-код в веб-браузере. Элемент может применяться для изменения содержимого страницы, взаимодействия с данными и эмуляции действий пользователя. Поддерживает как Manifest V2, так и Manifest V3.
Поддержка версий Manifest
Для Manifest V2:
// Строгая сигнатура (обязательно):
function(element, argumentFromRobot, discard) {
// element - DOM-элемент
// argumentFromRobot - входной параметр
// discard - флаг отмены
return "result";
}
Для Manifest V3 (с версии 1.25.5+):
// Все варианты допустимы:
function(el, val) { ... } // элемент + значение
function(v) { ... } // только значение
function() { ... } // без аргументов (el и v доступны автоматически)
// Или просто код:
el.value = v;
return true;
Для надежности рекомендуется использовать элемент в контейнере Открыть браузер либо в контейнере Присоединиться к браузеру. Тип браузера указывается в свойствах выбранного контейнера.
Перед началом работы
Убедитесь, что у вас установлено расширение браузера Primo RPA extension.
⚠️ Важно! Примечания о версиях:
С 25.1: Manifest V3 требует перезагрузки страницы для выполнения скриптов
С 25.5:
- V3 поддерживает гибкую сигнатуру (0-3 аргумента)
- V2 сохраняет требование строгой сигнатуры
- Добавлена валидация синтаксиса скриптов.
Свойства
Символ *
в названии свойства указывает на обязательность. Описание общих свойств см. в разделе Свойства элемента.
Группа «Вывод»:
- Результат [String] — название переменной, в которую будет сохранен результат работы скрипта.
Группа «Процесс»:
- Скрипт* [String] — скрипт, который следует выполнить. Кавычки внутри строки требуется экранировать.
Для Manifest V2 (строгая сигнатура):
function(element, argumentFromRobot, discard) {
// element - DOM-элемент (обязательно)
// argumentFromRobot - значение из свойства "Аргумент" (обязательно)
// discard - флаг отмены выполнения (обязательно)
return "result";
}
Manifest V3 (поддерживаемые варианты):
// 1. С явными аргументами:
function(el, val) { // el - элемент, val - значение аргумента
return el.value = val;
}
// 2. С одним аргументом:
function(v) { // v - значение аргумента (элемент доступен как 'el')
return el.innerText + v;
}
// 3. Без аргументов (используйте автоматические переменные):
el.value = v; // el - элемент, v - значение аргумента
return true;
// 4. Полная форма (аналогично V2):
function(a,b,c) { ... }
- Таймаут* [Int32] — предельное время ожидания завершения процесса, значение указывается в миллисекундах. По умолчанию
10000
.
Группа «Функция»:
-
Аргумент [String] — работает только с включенным свойством Функция. Укажите в этом поле аргумент функции. Аргументом может быть либо конкретное значение (например,
"hello"
), либо строковая переменная. Можно использовать только один аргумент. -
Функция [Boolean] — определяет, содержит ли скрипт функцию. По умолчанию чекбокс отключен — функция не используется.
-
Шаблон поиска — свойство позволяет выбрать элемент управления веб-страницы, на котором нужно применить скрипт. Для быстрого формирования шаблона рекомендуется использовать инструмент Волшебная палочка. Подробнее о шаблоне поиска можно узнать здесь.
-
Элемент [LTools.WebBrowser.Model.IElementInfo] — в этом свойстве можно указать переменную, содержащую ссылку на веб-элемент управления.
Как ее получить:
-
В сценарии сначала используем компонент Присутствие элемента. В этом компоненте, в свойстве вывода Элемент, указываем переменную с типом UIControl — она сохранит ссылку на найденный элемент управления.
-
В элементе Выполнить JS, в свойстве Элемент, открываем редактор кода и указываем
<название переменной>.BrowserElement
.
-
Только код
Пример использования элемента в процессе с типом Только код (Pure code):
C#
LTools.WebBrowser.BrowserApp app =
LTools.WebBrowser.BrowserApp.Init(wf, "Test page*",
LTools.WebBrowser.Model.BrowserTypes_Short.IE); app.Eval("script", 10000);