Skip to content
Vitest 3
Main Navigation Руководство & APIКонфигурацияРежим браузераРасширенный API
3.2.0
2.1.9
1.6.1
0.34.6

Русский

English
简体中文
繁體中文
Español
Français
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Русский

English
简体中文
繁體中文
Español
Français
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Внешний вид

Sidebar Navigation

Введение

Почему режим браузера

Режим браузера

Конфигурация

Справочник по настройке браузера

Настройка Playwright

Настройка WebdriverIO

API

Context API

Interactivity API

Локаторы

Assertion API

Команды

Руководство

Несколько конфигураций

Настройка Vitest

Справочник по API тестирования

Расширенный API

Содержание страницы

Context API ​

Vitest предоставляет модуль контекста через точку входа @vitest/browser/context. Начиная с версии 2.0, он включает небольшой набор утилит, которые могут быть полезны при написании тестов.

userEvent ​

TIP

API userEvent подробно объясняется в разделе Interactivity API.

ts
/**
 * Обработчик пользовательских взаимодействий. Поддержка обеспечивается провайдером браузера (`playwright` или `webdriverio`).
 * При использовании с провайдером `preview` происходит откат к симулированным событиям через `@testing-library/user-event`.
 * @experimental
 */
export const userEvent: {
  setup: () => UserEvent;
  cleanup: () => Promise<void>;
  click: (element: Element, options?: UserEventClickOptions) => Promise<void>;
  dblClick: (
    element: Element,
    options?: UserEventDoubleClickOptions
  ) => Promise<void>;
  tripleClick: (
    element: Element,
    options?: UserEventTripleClickOptions
  ) => Promise<void>;
  selectOptions: (
    element: Element,
    values: HTMLElement | HTMLElement[] | string | string[],
    options?: UserEventSelectOptions
  ) => Promise<void>;
  keyboard: (text: string) => Promise<void>;
  type: (
    element: Element,
    text: string,
    options?: UserEventTypeOptions
  ) => Promise<void>;
  clear: (element: Element) => Promise<void>;
  tab: (options?: UserEventTabOptions) => Promise<void>;
  hover: (element: Element, options?: UserEventHoverOptions) => Promise<void>;
  unhover: (element: Element, options?: UserEventHoverOptions) => Promise<void>;
  fill: (
    element: Element,
    text: string,
    options?: UserEventFillOptions
  ) => Promise<void>;
  dragAndDrop: (
    source: Element,
    target: Element,
    options?: UserEventDragAndDropOptions
  ) => Promise<void>;
};

commands ​

TIP

Этот API подробно объясняется в разделе Commands API.

ts
/**
 * Команды, доступные для браузера.
 * Является сокращённой записью для `server.commands`.
 */
export const commands: BrowserCommands;

page ​

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

WARNING

Хотя он предоставляет некоторые утилиты из объекта page Playwright, сам по себе он не является этим объектом. Поскольку контекст браузера выполняется в браузере, ваши тесты не имеют доступа к объекту page Playwright, так как последний работает на сервере.

Используйте Commands API, если вам требуется доступ к объекту page Playwright.

ts
export const page: {
  /**
   * Изменяет размер области просмотра iframe.
   */
  viewport(width: number, height: number): Promise<void>;
  /**
   * Делает скриншот тестового iframe или конкретного элемента.
   * @returns Путь к файлу скриншота или объект, содержащий путь и строку base64.
   */
  screenshot(
    options: Omit<ScreenshotOptions, 'base64'> & { base64: true }
  ): Promise<{
    path: string;
    base64: string;
  }>;
  screenshot(options?: ScreenshotOptions): Promise<string>;
  /**
   * Расширяет объект `page` пользовательскими методами.
   */
  extend(methods: Partial<BrowserPage>): BrowserPage;
  /**
   * Оборачивает HTML-элемент в `Locator`. При поиске элементов всегда будет возвращаться этот элемент.
   */
  elementLocator(element: Element): Locator;

  /**
   * API для работы с локаторами. Подробности см. в документации.
   */
  getByRole(role: ARIARole | string, options?: LocatorByRoleOptions): Locator;
  getByLabelText(text: string | RegExp, options?: LocatorOptions): Locator;
  getByTestId(text: string | RegExp): Locator;
  getByAltText(text: string | RegExp, options?: LocatorOptions): Locator;
  getByPlaceholder(text: string | RegExp, options?: LocatorOptions): Locator;
  getByText(text: string | RegExp, options?: LocatorOptions): Locator;
  getByTitle(text: string | RegExp, options?: LocatorOptions): Locator;
};

TIP

API getBy* объясняется в разделе Locators API.

ВНИМАНИЕ 3.2.0+

Обратите внимание, что screenshot всегда будет возвращать строку base64, если save имеет значение false. В этом случае path также будет проигнорирован.

cdp ​

Экспорт cdp предоставляет текущую сессию Chrome DevTools Protocol. Он в первую очередь полезен авторам библиотек для создания инструментов на его основе.

WARNING

Сессия CDP работает только с провайдером playwright и только при использовании браузера chromium. Дополнительную информацию можно найти в документации Playwright по CDPSession.

ts
export const cdp: () => CDPSession;

server ​

Экспорт server предоставляет доступ к среде Node.js, в которой работает сервер Vitest. Он в первую очередь полезен для отладки или адаптации тестов к конкретной среде.

ts
export const server: {
  /**
   * Платформа, на которой работает сервер Vitest.
   * Эквивалентно вызову `process.platform` на сервере.
   */
  platform: Platform;
  /**
   * Версия среды выполнения сервера Vitest.
   * Эквивалентно вызову `process.version` на сервере.
   */
  version: string;
  /**
   * Имя используемого провайдера браузера.
   */
  provider: string;
  /**
   * Имя текущего браузера.
   */
  browser: string;
  /**
   * Команды, доступные для браузера.
   */
  commands: BrowserCommands;
  /**
   * Сериализованная конфигурация теста.
   */
  config: SerializedConfig;
};
Pager
Предыдущая страницаНастройка WebdriverIO
Следующая страницаInteractivity API

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team

https://vitest.dev/guide/browser/context

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team