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;
};