Документация 0.4 Студия

Запуск и отладка

Процесс из студии запускается на этом же компьютере тем же роботом (tulpar-robot.exe), что и на машинах роботов, поэтому то, что работает в студии, так же работает и у робота. Ниже — как найти ошибку до запуска и разобраться, почему шаг не выполнился.

Проверка без запуска #

«Проверить» находит ошибки, не выполняя ни одного шага:

  • не заполнены обязательные поля;
  • ошибки в выражениях и в {{ }} (синтаксис JavaScript, незакрытые скобки и кавычки);
  • неверные имена переменных и их повторы, выходы в необъявленные переменные;
  • control.break и control.continue вне цикла;
  • неизвестные действия и неверная структура файла процесса.
«Процесс содержит ошибки»: щелчок по строке переходит к шагу
«Процесс содержит ошибки»: щелчок по строке переходит к шагу

Если ошибок нет, студия сообщит „Ошибок не найдено — процесс можно запускать“. «Запуск» всегда начинает с такой же проверки: процесс с ошибками не запускается.

Запуск #

«Запуск» (F5) выполняет процесс в том виде, в каком он сейчас в дизайнере, — сохранять перед запуском не обязательно. Но пути без диска считаются от папки файла процесса: новый процесс, который работает с файлами рядом с собой, сначала сохраните. Если у процесса есть аргументы, студия спросит их значения и запомнит последние.

Во время запуска:

  • выполняемый шаг подсвечивается, контейнеры с ним раскрываются;
  • редактирование недоступно — студия показывает „Идёт запуск — редактирование недоступно до его завершения“;
  • у выполненных шагов появляются отметки: успешно, ошибка или „Ошибка перехвачена — выполнение продолжилось“;
  • «Стоп» (Shift+F5) останавливает запуск; ожидания и паузы прерываются сразу.

Строка состояния внизу показывает состояние запуска и его длительность.

Лог #

Лог запуска: время, уровень, шаг и сообщение; фильтр по уровню
Лог запуска: время, уровень, шаг и сообщение; фильтр по уровню

В «Лог» — сообщения шагов control.log, начало и конец запуска, предупреждения (например, о долгом поиске элемента) и ошибки. Фильтр «Все», «Инфо», «Предупр.», «Ошибки» оставляет нужный уровень, «Очистить» очищает лог. Щелчок по строке выделяет шаг в дизайнере. Показываются последние 1000 записей.

Журналы запусков и снимки экрана хранятся в %LOCALAPPDATA%\Tulpar\logs\runs, журнал самой студии — в %LOCALAPPDATA%\Tulpar\logs.

Когда шаг завершился ошибкой #

Если ошибка не перехвачена, процесс останавливается. Студия выделяет шаг с ошибкой красным и показывает над дизайнером „Запуск завершился ошибкой на шаге N“ с кнопками «Перейти к шагу» и «Скрыть».

Шаг с ошибкой: текст ошибки, подсказка и ссылка на снимок экрана
Шаг с ошибкой: текст ошибки, подсказка и ссылка на снимок экрана

На карточке шага — текст ошибки, её вид и подсказка, что проверить:

Ошибка Что проверить
элемент не найден (ElementNotFound) Нужное окно или страница открыты, элемент виден; если интерфейс изменился — укажите элемент заново
истекло время ожидания (Timeout) Увеличьте таймаут в разделе „Дополнительно“ свойств шага или проверьте, не зависло ли приложение
ошибка в выражении (ExpressionError) Имена переменных и кавычки вокруг текста в выражениях и {{ }}
файл не найден (FileNotFound) Путь к файлу; путь без диска считается от папки процесса
файл занят (FileLocked) Закройте файл в других программах (например, в Excel)
ошибка браузера (BrowserError) Edge или Chrome установлен, страница открывается
приложение не запустилось (AppStartFailed) Путь к программе

Все коды ошибок — в справочнике действий.

Действия Windows и браузера при ошибке сохраняют снимок экрана (у браузера — страницы): «Открыть скриншот» на карточке шага и в строке лога показывает, что было на экране в момент ошибки.

Обработка ошибок в процессе #

Способ Когда применять
control.tryCatch Ожидаемая ошибка, после которой процесс должен продолжить: дубликат в очереди, неверная строка таблицы. В ветке „Catch“ в переменной error — код (error.code), текст (error.message) и шаг (error.stepId)
«Продолжать при ошибке» в свойствах шага Необязательный шаг: ошибка попадёт в лог предупреждением, процесс пойдёт дальше
control.throw Процесс сам нашёл проблему в данных и должен остановиться с понятным сообщением

Как отлаживать #

Пошагового выполнения и точек останова в версии 0.4 нет. Приёмы, которые их заменяют:

  • Значения в лог. Временный шаг control.log с {{ rows.length }}, {{ item }} или {{ error }} покажет значение переменной в нужный момент; объект выводится как JSON.
  • Часть процесса. Отключите шаги, которые сейчас не нужны («Отключить шаг (Ctrl+E)»), — например, вход на портал, если браузер уже открыт на нужной странице. Отключённый контейнер пропускается целиком.
  • Проверка элемента. У шагов Windows «Подсветить» показывает, находит ли селектор элемент, без запуска процесса — см. Пикер элементов.
  • Окно браузера. Запускайте browser.open с выключенным „Без окна (headless)“, чтобы видеть страницу.
  • Окно сообщения. system.messageBox останавливает процесс, пока вы не нажмёте OK, — можно посмотреть на экран программы в этот момент.

Отладка с оркестратором #

Действия „Оркестратор“ (очереди, ресурсы, отчёты) работают в студии, если она подключена к оркестратору: они обращаются к „области для отладки“, выбранной в «Оркестратор» → «Подключение…». Данные при этом настоящие: элементы очереди берутся в работу и получают результат, ресурсы и отчёты меняются. Перед запуском процесса, который берёт элементы очереди, студия предупреждает: «Отладка с настоящей очередью». Для проб используйте отдельную очередь или тестовую рабочую область. Журнал шагов такого запуска остаётся в студии; в панели запуск виден как задание с пометкой «Отладка».