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

Справочник по всем шагам тестов: что делает каждый шаг, какие поля принимает и как его использовать.

Я вижу Проверка, что текст виден на странице. Я не вижу Проверка, что текста НЕТ на странице. Нажать Нажать на элемент. Можно указать видимый текст кнопки/ссылки или CSS-селектор. Подождать Ждать появление текста Ждать появления текста на странице. Формат: текст|секунды. Перейти на страницу Вижу элемент Убедиться, что элемент существует и видим на странице. Не вижу элемент Убедиться, что элемента НЕТ или он скрыт. У элемента есть класс Проверить, что у элемента есть указанный CSS-класс. Формат: селектор|имя_класса (без точки). У элемента нет класса Проверить, что у элемента НЕТ указанного CSS-класса. Формат: селектор|имя_класса (без точки). Заполнить форму Заполнить сразу несколько полей одной формы. Укажите название формы (видимый текст: «Вход», «Регистрация») и нажмите «Найти поля» — система откроет страницу на этом шаге и покажет все видимые поля формы. Введите значения, лишние поля удалите. Можно включить отправку формы. Двойной клик Двойной клик по элементу. Клик правой кнопкой Клик правой кнопкой мыши (вызов контекстного меню). Навести курсор Навести курсор на элемент (вызовет hover-эффекты, выпадающие меню и т.п.). Перетащить элемент Перетащить один элемент на другой. Формат: селектор_источника|селектор_цели. Нажать клавишу Нажать клавишу в фокусе элемента. Формат: селектор|клавиша. Нет ошибок в консоли Убедиться, что в консоли браузера не было ошибок (console.error и необработанных JS-исключений). Отслеживание начинается с первого упоминания этого шага в сценарии — ставьте его после нужных действий. Нет глобальной переменной Убедиться, что в window не определена указанная переменная. Используется для проверки, что XSS-payload не выполнился. Закрыть модальное окно Закрыть открытое модальное окно/попап (квиз, лид-форма, галерея). Параметры не нужны — закрытие идёт автоматически: крестик → Escape → клик по затемнению. Ставьте после проверки содержимого модалки (шаги «Я вижу»), чтобы окно не перекрывало следующие шаги. Напечатать текст посимвольно Напечатать текст посимвольно (с задержками, как живой пользователь). Формат: селектор|текст. Нет alert/confirm/prompt Убедиться, что страница не показала alert(), confirm() или prompt(). Все диалоги автоматически закрываются, шаг падает, если хотя бы один сработал. Задать размер окна Задать размер окна браузера (для проверки адаптивной вёрстки). Формат: ширина|высота в пикселях. Проверка мобильной вёрстки Комплексная проверка мобильной вёрстки: наличие <meta name="viewport">, отсутствие горизонтального скролла, элементы за границей вьюпорта и слишком мелкие тач-таргеты (<32px). Не переключает размер окна — поставьте перед этим шагом «Задать размер окна» на мобильное разрешение (например 375×812). Есть meta viewport Проверить, что на странице есть тег <meta name="viewport"> — обязательное условие корректной мобильной вёрстки. Нет горизонтального скролла Проверить, что на странице нет горизонтальной прокрутки (document.scrollWidth ≤ clientWidth). Типичная проверка адаптивности под мобильный viewport. Дождаться загрузки видео-данных Дождаться сетевого ответа с видео-данными (манифест или сегмент потока) — подтверждает, что плеер пошёл качать видео. Без параметров ловит дефолтный медиа-трафик (HLS .m3u8, DASH .mpd, сегменты .ts/.m4s, прогрессивные .mp4/.webm, по Content-Type). Формат: паттерн[,паттерн2]|секунды — свои подстроки URL (дефолты отключаются) и/или таймаут. Видео воспроизводится Проверить, что на странице реально проигрывается видео, а не просто отрисован постер/кнопка Play. Шаг сам находит главный плеер (обходит iframe и shadow DOM, из нескольких <video> берёт видимый и самый крупный, отсекая рекламу/превью) и делает два замера времени: если currentTime растёт и поток готов — шаг пройден (в т.ч. для live-эфиров). Параметр необязателен: минимальное продвижение времени в секундах за замер (по умолчанию 0.2). Падает с понятной причиной, если видео на паузе, буферизуется, закончилось или ошибка плеера. Не сработает на cross-origin встроенном плеере (чужой iframe — запрет браузера) и на DRM/canvas-видео — об этом шаг сообщит явно. Поставьте после клика по Play. Выбрать из списка Выбрать значение в выпадающем списке <select>. Формат: селектор|значение. Поставить галочку Поставить галочку в чекбоксе или радио-кнопке. Снять галочку Снять галочку с чекбокса. Очистить поле Очистить содержимое поля ввода. Установить фокус Установить фокус на элемент (как если бы пользователь кликнул в поле). Назад Нажать «Назад» в браузере — вернуться на предыдущую страницу в истории. Вперёд Нажать «Вперёд» в браузере — перейти на следующую страницу в истории. Перезагрузить страницу Перезагрузить текущую страницу (как F5). Проверить URL Убедиться, что текущий URL содержит указанную подстроку. Проверить заголовок страницы Убедиться, что <title> страницы содержит указанный текст. Проверить значение поля Убедиться, что в поле ввода именно ожидаемое значение. Формат: селектор|значение. Проверить атрибут элемента Проверить значение атрибута элемента. Формат: селектор|имя_атрибута|ожидаемое_значение. Проверить количество элементов Проверить, что количество найденных элементов равно числу. Формат: селектор|количество. Ждать изменения URL Ждать, пока URL не будет содержать подстроку. Формат: часть_url|секунды. Ждать загрузки страницы Ждать состояния загрузки страницы. Прокрутить к элементу Плавно прокрутить страницу к указанному элементу (он окажется в видимой области). Прокрутить на пиксели Прокрутить страницу на пиксели. Формат: x|y (отрицательные — вверх/влево). Получить атрибут и отправить Получить значение атрибута и отправить POST. Формат: селектор|атрибут|url. Получить URL страницы и отправить Получить текущий URL страницы и отправить POST на ваш адрес. Получить заголовок страницы и отправить Получить <title> страницы и отправить POST на ваш адрес. Установить Cookie Установить cookie для текущего домена. Формат: имя|значение. Установить LocalStorage Записать значение в localStorage. Формат: ключ|значение. Скриншот всей страницы Сделать скриншот всей страницы целиком, включая то, что за пределами экрана (с прокруткой). Сохранить страницу в PDF и отправить Сохранить текущую страницу в PDF и отправить POST на ваш адрес. Эмулировать тип медиа Эмулировать тип медиа CSS. Установить HTTP-заголовки Добавить HTTP-заголовки ко всем запросам. Формат: Header:Value,Header2:Value2. Ждать ответа сервера Ждать сетевого ответа от сервера. Формат: паттерн_url|секунды. Ждать появление элемента Ждать появления элемента. Формат: селектор|секунды. Заполнить поле Заполнить поле ввода. Формат: селектор|значение. Парсить текст и отправить Распарсить текст из элемента и отправить POST-запросом на ваш URL. Формат: селектор|url. Парсить текст и отправить на E-Mail Распарсить текст и отправить на email. Формат: селектор|email. Парсить полное содержимое страницы Получить весь видимый текст страницы и отправить POST на указанный URL. Выполнить JS скрипт и отправить результат Выполнить JS-код и отправить результат POST-запросом. Формат: js|url. Выполнить JS скрипт Выполнить произвольный JavaScript-код в контексте страницы. Полный аудит страницы Полный аудит текущей страницы — той, на которой стоит сценарий в момент шага. Параметры не нужны. Главное назначение — аудит закрытой под авторизацией зоны (личный кабинет): поставьте шаги входа, а затем «Полный аудит страницы». Аудитится только эта одна страница, переходов по ссылкам нет. В прогоне теста результат сохраняется и появляется в списке «Аудиты» (cp/audit) с пометкой «из сценария»; собираются доступность (axe), производительность загрузки, SSL, битые ссылки, мета-теги/SEO, мобильная вёрстка и AI-восприятие страницы (тратит AI-токены). В превью/рекордере шаг выполняется в облегчённом режиме для проверки: показывает краткую сводку, ничего не сохраняет и не тратит токены. Lighthouse не используется. Переключиться на другое окно Переключиться на другое окно/вкладку браузера по имени. Передайте _ чтобы переключиться на новую вкладку. Запомнить текст Запоминает текст элемента в слот на время прогона теста (после теста стирается). Два поля: слот (Слот 1–4) и селектор элемента, чей текст запомнить. Визуальная регрессия Сравнивает текущую страницу с тем, как она выглядела в прошлых прогонах этого же шага — ловит визуальные регрессии (поехала вёрстка, сместился/пропал текст или элемент, сломались стили). Параметр — порог расхождения в процентах площади (по умолчанию 2%): меньше порога — шаг проходит, больше — тест падает. Эталоном служат скриншоты этого шага из последних прогонов; сравнение пиксельное, лёгкий шум рендеринга и сглаживание игнорируются, а допуск «совпал хотя бы с одним из последних кадров» гасит мелкую динамику. При первом прогоне или после изменения сценария эталон формируется заново (шаг просто проходит). Если расхождение превысило порог — кадр уходит в AI-зрение за пояснением, что именно изменилось (тратит AI-токены владельца теста; при нехватке баланса делается только пиксельное сравнение без AI-вердикта). Результат и вердикт видны на странице отчёта прогона на этом шаге. В превью/рекордере — заглушка: сравнение выполняется только в прогоне теста. Восприятие страницы Визуальная AI-проверка текущей страницы. Воркер делает full-page скриншот и отправляет его в AI-зрение. Если поле оставить пустым — задаётся вопрос, всё ли со страницей в порядке визуально (читается ли шрифт, не поехала ли вёрстка, подтянулись ли стили и картинки). Если задать свой вопрос — AI вместо этого проверит именно его (например «открылся ли видеоролик»). Если AI отвечает, что со страницей что-то не так (голый HTML без стилей, наезжающий/обрезанный текст, «битые картинки», пустой/белый экран) — тест падает, в причину попадает ответ модели. Если AI отвечает, что со страницей всё в порядке — шаг считается выполненным и тест продолжается дальше. Расходует AI-токены владельца теста: шаг запускает AI-зрение только при балансе от 5000 токенов; при нехватке проверка тихо пропускается, баланс не уходит в минус. В превью/рекордере — заглушка: шаг отмечается выполненным, AI не вызывается и токены не тратятся. Неиспользуемый CSS/JS Информационный шаг — тест не роняет и ничего не сравнивает с порогом, результат виден в карточке шага отчёта прогона. Показывает долю неиспользуемого кода — сколько загруженного CSS и JS не задействовано при отрисовке страницы («мёртвый вес»). Воркер перезагружает текущую страницу со снятием покрытия (Chromium Coverage API) и считает процент неиспользуемых байт + топ самых «тяжёлых» файлов. Параметры не нужны — проверяется текущая страница. Проверка микроразметки Информационный шаг — тест не роняет, результат виден в карточке шага отчёта прогона. Проверяет микроразметку Schema.org (JSON-LD) на текущей странице по требованиям Google Rich Results и Яндекс. Проверяются обязательные и рекомендуемые поля популярных типов (Organization, Product, Offer, BreadcrumbList, Article, FAQPage, Event и др.), битые блоки JSON-LD и полное отсутствие разметки. В отчёте видно, есть ли разметка, битый ли JSON и каких обязательных полей не хватает (из-за чего поисковик может не показать rich-сниппет). Параметры не нужны. Отзывчивость интерфейса Информационный шаг — тест не роняет, результат виден в карточке шага отчёта прогона. Проверяет отзывчивость интерфейса: у интерактивных элементов (ссылок, кнопок, полей) должен быть визуальный отклик на наведение или фокус — меняется фон, цвет, рамка, тень, подчёркивание и т.п. Воркер реально наводит курсор и ставит фокус на выборку элементов и сравнивает стили до/после; элемент с курсором-pointer засчитывается сразу. В отчёт попадает, сколько элементов прощупано и у каких нет отклика (их непонятно, кликабельны ли они и попал ли фокус — важно для доступности с клавиатуры). Параметры не нужны — проверяется текущая страница. API-запрос Выполняет HTTP-запрос прямо в сценарии — например, чтобы залогиниться по API, дёрнуть бэкенд или подготовить данные. Запрос идёт через браузер теста, поэтому cookies и сессия общие: логин по API виден странице, и наоборот. Токены/деньги AI не тратит.