Перейти к основному содержимому

actor

Актор представляет собой пользователя. Осуществляет взаимодействие с приложением эмулируя действия на странице.


hover

Использует оригинальный метод playwright

click

Использует оригинальный метод playwright

dblclick

Использует оригинальный метод playwright

fill

Использует оригинальный метод playwright

wait

Использует оригинальный метод playwright

Внимание

Данный метод предназначен исключительно для отладки.

scrollTo

Использует оригинальный метод playwright

select

Использует оригинальный метод playwright

keyboard

press

Использует оригинальный метод playwright

down

Использует оригинальный метод playwright

up

Использует оригинальный метод playwright

mouse

move

Использует оригинальный метод playwright

down

Использует оригинальный метод playwright

up

Использует оригинальный метод playwright

wheel

Использует оригинальный метод playwright

clear

Использует оригинальный метод playwright

highlight

Использует оригинальный метод playwright

Внимание

Данный метод предназначен исключительно для отладки.

drag

Использует оригинальный метод playwright

blur

Использует оригинальный метод playwright

pressSequentially

Использует оригинальный метод playwright

waitFor

Использует оригинальный метод playwright

waitForURL

Использует оригинальный метод playwright

resize

Изменяет viewport браузера в соответствии с конфигурацией:

actor.resize({ width: 1440, height: 920 });
подсказка

resize также влияет и на размер снимка экрана. Рекомендуется использовать данный метод для съёмки длинных форм и списков.

примечание

Размер сохраняется для всех последующих действий и может быть переопределён последующим resize.

screenshot

Осуществляет промежуточные снимки во время действий на странице.

примечание

Если вызывается последним в цепочке - переопределяет параметры последнего снимка создаваемого по умолчанию.

Внимание

Имя снимка должно быть в формате PascalCase. Также допускаются символы _.

actor
// Сделать снимок начального состояния формы
.screenshot('Initial')
.do(fillForm())
// Назвать конечный снимок как Filled
.screenshot('Filled');

Маскирование

На снимках можно маскировать элементы, это может быть полезно при работе с динамически изменяемыми данными:

actor
.do(fillForm())
// Маскируем компонент отображающий время
.screenshot('Filled', { mask: [finder.get(appClock())] });
Внимание

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

uploadFile

Загружает один или несколько файлов в целевой элемент:

actor.uploadFile(finder.get(uploadTrigger()), 'path/to/file_0.ext');
примечание

Первым аргументом uploadFile принимает элемент, по клику на который открывается проводник файлов для загрузки.

подсказка

Путь к файлам считается относительно рабочей директории проекта. Поэтому рекомендуется для простоты располагать их в одном месте:

function getPath(file: string) {
return `/src/storyshots/externals/files/${file}`;
}

actor.uploadFile(finder.get(uploadTrigger()), [
getPath('file_1.ext'),
getPath('file_2.ext'),
]);

do

Позволяет расширять действия пользователя используя специальные трансформеры:

function enterCredentials(): ActorTransformer {
return (actor) =>
actor
.fill(finder.getByRole('username'), 'user')
.fill(finer.getByRole('password'), 'pass');
}

actor.do(enterCredentials());

Функция также принимает окружение истории как второй аргумент:

function closePopup(): ActorTransformer {
return (actor, config) =>
config.device.name === 'mobile'
? actor.do(swipe())
: actor.click(finder.get(cross()));
}

toMeta

Преобразует действия актора в мета-объекты, используемые storyshots.

примечание

Если итоговый массив пустой, тест считается пустым и не запускается тест-раннером.

stop

Останавливает выполнение всех последующих действий:

actor
.hover() // Выполнится
.stop() // После данной точки, все последующие действия не будут выполнены
.click()
.fill();
Внимание

Данный метод предназначен исключительно для отладки.

exec

Вызывает переданную функцию в контексте страницы.

actor
.do(submit())
// Будет выполнен сразу после submit
.exec(() => window.alert('Code has been injected'));
Внимание

Функции, передаваемые в exec не могут иметь внешних зависимостей за исключением глобальных объектов Browser API.