Справочник элементов
Шаг автотеста
Шаг автотеста
Шаг автотеста - одно действие Playwright внутри автотеста. У шага есть action_name, необязательный Target, необязательный Value, необязательный timeout_ms и при необходимости expected_value.
На карточке автотеста шаги показываются в виде Панель или Карточки. Как переключить и когда остаётся только карточки: Составление шагов автотеста.
Источник истины правил действий - файл данных autotest-actions.json в репозитории документации (каталог app/src/.vitepress/data/). Инструкции по каждому действию: /ru/autotests/actions/{action_name}.
Связи
| Связанный элемент | Как связан |
|---|---|
| Автотест | Обязательный родитель |
| Элемент / страница | Необязательный Target из репозитория объектов |
| Тестовый аккаунт | Через источник Value TEST_ACCOUNT у выполняемого CASE |
Поля модели
| Название | Техническое имя | Смысл |
|---|---|---|
| Действие | action_name | Имя из каталога (41 действие) |
| Target | Target | Элемент/страница репозитория или локатор на шаге |
| Value | Value / value_text | Текст, путь, URL, клавиша, имя атрибута, число, класс, id, свойство CSS или заголовок вкладки - по действию |
| Источник Value | value_source_type | INLINE, TEST_ACCOUNT или RUN_PARAMETER |
| Поле аккаунта | value_source_field | login или password при TEST_ACCOUNT |
| Таймаут | timeout_ms | Необязательный лимит ожидания/проверки в мс |
| Ожидаемое значение | expected_value | Для toHaveAttribute - ожидаемое содержимое атрибута, можно не заполнять. Для toHaveCSS - вычисленное значение свойства, обязательно |
Таблицы полей как проекция схемы появятся после артефакта схемы на пути проверки запроса. До этого ориентир - каталог действий ниже и SDK.
Виды локатора Target
Литералы kind - только UPPERCASE:
kind | Смысл | В интерфейсе |
|---|---|---|
ROLE | Accessibility role; при необходимости имя (name) | Role |
LABEL | Связанный label поля (label / accessible name поля ввода) | Label |
PLACEHOLDER | Placeholder | Placeholder |
TESTID | Test id | Test id |
TEXT | Видимый текст на странице (не label поля) | Text |
TITLE | Атрибут title | Title |
ALT | Альтернативный текст изображения | Alt |
CSS | CSS-селектор | CSS |
ID | Атрибут id | ID |
NAME | Атрибут name | Name |
XPATH | XPath | XPath |
SELECTOR | Селектор в общем виде | Selector |
В селекте Искать по не путайте LABEL и TEXT:
| Выбрать | Когда |
|---|---|
LABEL (Label) | Цель - поле/контрол по его label (например «Email», «Пароль» у input) |
TEXT (Text) | Цель - элемент по видимому тексту на экране (кнопка «Сохранить», заголовок, ссылка) |
Подписи в селекте - оригинальные английские слова Playwright (Role, Label, Text), на всех локалях интерфейса одинаково. Литерал в JSON и API всегда UPPERCASE (LABEL, TEXT).
В карточке шага автотеста селект называется Искать по. Те же литералы kind и те же подписи используются у элемента репозитория объектов.
Target также может ссылаться на запись репозитория объектов вместо локатора на шаге. Подробнее: Привязка Target из репозитория объектов.
Источники Value
| Значение | Смысл |
|---|---|
INLINE | Текст хранится в шаге |
TEST_ACCOUNT | Воркер берёт поле login или password аккаунта выполняемого CASE |
RUN_PARAMETER | Value - шаблон. <<имя>> заменяется значением параметра запуска с этим именем |
Поля тестового аккаунта для источника: login, password. Инструкция: Значения из тестового аккаунта в шагах.
RUN_PARAMETER нельзя сочетать со страницей репозитория на том же шаге. Токен <<имя>> в этом случае пишите в Путь страницы, а шаг оставьте привязанным к странице. Тот же токен в Значении локатора или Доступном имени элемента заменяется, когда шаг использует этот элемент. Имена собираются по всему проекту и заполняются в блоке Параметры запуска при создании запуска. См. Создание запуска автотестов.
Правила каталога
- Скриншот не является шагом. Параметры запуска (
Скриншот при ошибке,Скриншот результата) - неaction_name. Типичные ложные падения шагов: Как задавать шаги автотеста без ложных падений. TEST_ACCOUNTнельзя сочетать с Target-страницей репозитория на том же шаге.TEST_ACCOUNTзапрещён дляgoto,waitForURL,toHaveURL,waitForTimeout.- Не кликайте ссылки с новой вкладкой (
target=_blank): откройте URL черезgoto. - Проверить синтаксис проверяет сохранённые шаги. Сайт не открывает и не ловит строгий режим Playwright во время выполнения.
- Предупреждение, если CSS-локатор использует подстроку
*=. Предпочитайте точные локаторы. - У
pressTarget необязателен. Value - строка клавиши Playwright:EnterилиControl+Shift+F. Модификаторы толькоShift,Control,Alt,Meta,ControlOrMeta. Подробнее: Нажатие клавиши (press).
Каталог действий
Колонки Target / Value: обязательно, не используется или необязательно - по autotest-actions.json. Ссылка ведёт на инструкцию действия.
action_name | Группа | Target | Value | TEST_ACCOUNT | Инструкция |
|---|---|---|---|---|---|
goto | Навигация | Не используется | Необязательно (url) | Нет | goto |
click | Указатель | Обязательно | Не используется | Нет | click |
rightClick | Указатель | Обязательно | Не используется | Нет | rightClick |
dblclick | Указатель | Обязательно | Не используется | Нет | dblclick |
fill | Ввод | Обязательно | Обязательно (text) | Да | fill |
type | Ввод | Обязательно | Обязательно (text) | Да | type |
pressSequentially | Ввод | Обязательно | Обязательно (text) | Да | pressSequentially |
press | Ввод | Необязательно | Обязательно (key) | Да | press |
check | Ввод | Обязательно | Не используется | Нет | check |
uncheck | Ввод | Обязательно | Не используется | Нет | uncheck |
selectOption | Ввод | Обязательно | Обязательно (text) | Да | selectOption |
clear | Ввод | Обязательно | Не используется | Нет | clear |
selectText | Ввод | Обязательно | Не используется | Нет | selectText |
hover | Указатель | Обязательно | Не используется | Нет | hover |
focus | Указатель | Обязательно | Не используется | Нет | focus |
blur | Указатель | Обязательно | Не используется | Нет | blur |
scrollIntoViewIfNeeded | Указатель | Обязательно | Не используется | Нет | scrollIntoViewIfNeeded |
waitForSelector | Ожидание | Обязательно | Не используется | Нет | waitForSelector |
waitForURL | Ожидание | Не используется | Обязательно (url) | Нет | waitForURL |
waitForTimeout | Ожидание | Не используется | Обязательно (duration_ms) | Нет | waitForTimeout |
goBack | Навигация | Не используется | Не используется | Нет | goBack |
goForward | Навигация | Не используется | Не используется | Нет | goForward |
reload | Навигация | Не используется | Не используется | Нет | reload |
toBeVisible | Проверка | Обязательно | Не используется | Нет | toBeVisible |
toBeHidden | Проверка | Обязательно | Не используется | Нет | toBeHidden |
toBeEnabled | Проверка | Обязательно | Не используется | Нет | toBeEnabled |
toBeDisabled | Проверка | Обязательно | Не используется | Нет | toBeDisabled |
toBeChecked | Проверка | Обязательно | Не используется | Нет | toBeChecked |
toBeEditable | Проверка | Обязательно | Не используется | Нет | toBeEditable |
toBeFocused | Проверка | Обязательно | Не используется | Нет | toBeFocused |
toBeEmpty | Проверка | Обязательно | Не используется | Нет | toBeEmpty |
toHaveText | Проверка | Обязательно | Обязательно (text) | Да | toHaveText |
toContainText | Проверка | Обязательно | Обязательно (text) | Да | toContainText |
toHaveValue | Проверка | Обязательно | Обязательно (text) | Да | toHaveValue |
toHaveCount | Проверка | Обязательно | Обязательно (count) | Да | toHaveCount |
toHaveURL | Проверка | Не используется | Обязательно (url) | Нет | toHaveURL |
toHaveTitle | Проверка | Не используется | Обязательно (title) | Да | toHaveTitle |
toHaveAttribute | Проверка | Обязательно | Обязательно (attribute_name) + expected_value | Да | toHaveAttribute |
toHaveClass | Проверка | Обязательно | Обязательно (class_name) | Да | toHaveClass |
toHaveId | Проверка | Обязательно | Обязательно (dom_id) | Да | toHaveId |
toHaveCSS | Проверка | Обязательно | Обязательно (css_property и expected_value) | Да | toHaveCSS |
Ограничения
- Для
gotoполный URL должен указывать на подтверждённый домен команды (или поддомен). - Падение шага группы Проверка валит результат автотеста.
Страница не помогла?