Документация 0.4 Справочник действий
Выполнить JavaScript
browser.evaluate · Браузер
Выполняет скрипт на странице и возвращает результат
Выполняет JavaScript на открытой странице и возвращает результат: собрать таблицу целиком, прочитать данные, до которых трудно добраться селекторами, прокрутить страницу. Для обычных кликов и ввода пользуйтесь специальными действиями — они сами ждут элементы.
Свойства #
| Свойство | Имя в файле | Значение | Обязательное | По умолчанию | Описание |
|---|---|---|---|---|---|
| Скрипт | script |
многострочный текст | да | — | Выражение (document.title) или функция (() => …); результат — число, строка, массив или объект |
| Сессия | session |
текст | нет | main |
Имя сессии браузера (по умолчанию main); несколько сессий — несколько окон |
Результат #
Значение выхода сохраняется в переменную, выбранную для него в свойствах шага (раздел выходов).
| Выход | Имя в файле |
|---|---|
| Результат | result |
Как работает #
- Скрипт (
script) — выражение (document.title) или функция (() => [...document.querySelectorAll('tr')].map(r => r.innerText)). Скрипт выполняется в странице, переменные процесса в нём недоступны — значения подставляйте через{{ }}(текст — в кавычках:'{{ number }}'). - Выход Результат — число, строка, да/нет, список или объект; DOM-элементы вернуть нельзя.
- Сессия (
session, по умолчаниюmain) — имя окна браузера, открытогоbrowser.open. Нужно, только если процесс работает с несколькими окнами сразу.
Ошибки #
| Код | Причина и что делать |
|---|---|
BrowserError |
Ошибка в скрипте страницы (сообщение JavaScript в тексте ошибки); сессия не открыта |
Пример #
Собрать строки таблицы:
{
"type": "browser.evaluate",
"props": { "script": "() => [...document.querySelectorAll('#orders tbody tr')].map(r => r.cells[0].innerText)" },
"out": { "result": "orderNumbers" }
}