@serenity-js/playwright
Version:
Adapter that integrates @serenity-js/web with Playwright, enabling Serenity/JS reporting and using the Screenplay Pattern to write component and end-to-end test scenarios
54 lines • 2.6 kB
TypeScript
import { URL } from 'node:url';
import { type QuestionAdapter } from '@serenity-js/core';
import type { CorrelationId } from '@serenity-js/core/lib/model';
import type { Cookie, CookieData, PageElements, Selector } from '@serenity-js/web';
import { Key, Page, PageElement } from '@serenity-js/web';
import type * as playwright from 'playwright-core';
import type { ExtraBrowserContextOptions } from '../../ExtraBrowserContextOptions';
import type { PlaywrightBrowsingSession } from './PlaywrightBrowsingSession';
/**
* Playwright-specific implementation of [`Page`](https://serenity-js.org/api/web/class/Page/).
*
* @group Models
*/
export declare class PlaywrightPage extends Page<playwright.Locator> {
private readonly page;
private readonly options;
private lastScriptExecutionSummary;
private dehydrator;
static current(): QuestionAdapter<PlaywrightPage>;
constructor(session: PlaywrightBrowsingSession, page: playwright.Page, options: Partial<Pick<ExtraBrowserContextOptions, 'defaultNavigationWaitUntil'>>, pageId: CorrelationId);
createPageElement(nativeElement: playwright.Locator): PageElement<playwright.Locator>;
locate(selector: Selector): PageElement<playwright.Locator>;
locateAll(selector: Selector): PageElements<playwright.Locator>;
navigateTo(destination: string): Promise<void>;
navigateBack(): Promise<void>;
navigateForward(): Promise<void>;
reload(): Promise<void>;
sendKeys(keys: (string | Key)[]): Promise<void>;
executeScript<Result, InnerArguments extends any[]>(script: string | ((...parameters: InnerArguments) => Result), ...args: InnerArguments): Promise<Result>;
executeAsyncScript<Result, InnerArguments extends any[]>(script: string | ((...args: [...parameters: InnerArguments, callback: (result: Result) => void]) => void), ...args: InnerArguments): Promise<Result>;
lastScriptExecutionResult<Result = any>(): Result;
takeScreenshot(): Promise<string>;
cookie(name: string): Promise<Cookie>;
setCookie(cookieData: CookieData): Promise<void>;
deleteAllCookies(): Promise<void>;
title(): Promise<string>;
name(): Promise<string>;
url(): Promise<URL>;
viewportSize(): Promise<{
width: number;
height: number;
}>;
setViewportSize(size: {
width: number;
height: number;
}): Promise<void>;
close(): Promise<void>;
closeOthers(): Promise<void>;
isPresent(): Promise<boolean>;
nativePage(): Promise<playwright.Page>;
private resetState;
private currentFrame;
}
//# sourceMappingURL=PlaywrightPage.d.ts.map