You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
717 B
TypeScript

import { Browser, BrowserContext, firefox, Page } from "@playwright/test";
let browser: Browser;
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
export async function getBrowser(): Promise<Browser> {
if (!browser) browser = await firefox.launch();
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return browser;
}
export async function closeBrowser() {
if (browser) {
await browser.close();
}
}
export async function getPage(): Promise<{
page: Page;
browser: Browser;
context: BrowserContext;
}> {
const browser = await getBrowser();
const context = await browser.newContext();
const page = await context.newPage();
return { browser, context, page };
}