API kontekstowe
Vitest udostępnia moduł kontekstu poprzez punkt wejścia @vitest/browser/context. Od wersji 2.0 oferuje on zestaw narzędzi, które mogą być przydatne w testach.
userEvent
TIP
API userEvent jest szczegółowo opisane w API interaktywności.
/**
* Obsługa interakcji użytkownika jest realizowana przez dostawcę przeglądarki (`playwright` lub `webdriverio`).
* W przypadku użycia z dostawcą `preview`, następuje powrót do symulowanych zdarzeń poprzez `@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
To API jest szczegółowo wyjaśnione w API poleceń.
/**
* Dostępne polecenia dla przeglądarki.
* Skrót do `server.commands`.
*/
export const commands: BrowserCommands;page
Eksport page udostępnia narzędzia do interakcji z bieżącą stroną.
WARNING
Chociaż udostępnia on niektóre narzędzia z obiektu page Playwrighta, nie jest to ten sam obiekt. Kontekst przeglądarki jest wykonywany w przeglądarce, więc Twoje testy nie mają dostępu do obiektu page Playwrighta, ponieważ działa on na serwerze.
Użyj API poleceń, jeśli potrzebujesz dostępu do obiektu page z Playwrighta.
export const page: {
/**
* Zmienia rozmiar widoku iframe'a.
*/
viewport(width: number, height: number): Promise<void>;
/**
* Wykonuje zrzut ekranu testowego iframe'a lub konkretnego elementu.
* @returns Ścieżka do pliku zrzutu ekranu lub ścieżka wraz z base64.
*/
screenshot(
options: Omit<ScreenshotOptions, 'base64'> & { base64: true }
): Promise<{
path: string;
base64: string;
}>;
screenshot(options?: ScreenshotOptions): Promise<string>;
/**
* Rozszerza domyślny obiekt `page` o niestandardowe metody.
*/
extend(methods: Partial<BrowserPage>): BrowserPage;
/**
* Zawija element HTML w `Locator`. Podczas wyszukiwania elementów, wyszukiwanie zawsze zwróci ten element.
*/
elementLocator(element: Element): Locator;
/**
* API Lokalizatorów. Więcej szczegółów znajdziesz w jego dokumentacji.
*/
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* jest wyjaśnione w API Lokalizatorów.
OSTRZEŻENIE 3.2.0+
Zauważ, że screenshot zawsze zwróci ciąg base64, gdy save jest ustawione na false. W takim przypadku path jest również ignorowane.
cdp
Eksport cdp zwraca bieżącą sesję protokołu Chrome DevTools. Jest to przydatne głównie dla autorów bibliotek do budowania narzędzi na jego podstawie.
WARNING
Sesja CDP działa tylko z dostawcą playwright i wyłącznie podczas używania przeglądarki chromium. Więcej informacji można znaleźć w dokumentacji CDPSession Playwrighta.
export const cdp: () => CDPSession;server
Eksport server reprezentuje środowisko Node.js, w którym działa serwer Vitest. Jest to przydatne głównie do debugowania lub ograniczania testów w zależności od środowiska.
export const server: {
/**
* Platforma, na której działa serwer Vitest.
* Odpowiada wywołaniu `process.platform` na serwerze.
*/
platform: Platform;
/**
* Wersja środowiska uruchomieniowego serwera Vitest.
* Odpowiada wywołaniu `process.version` na serwerze.
*/
version: string;
/**
* Nazwa dostawcy przeglądarki.
*/
provider: string;
/**
* Nazwa bieżącej przeglądarki.
*/
browser: string;
/**
* Dostępne polecenia dla przeglądarki.
*/
commands: BrowserCommands;
/**
* Zserializowana konfiguracja testu.
*/
config: SerializedConfig;
};