22 lines
701 B
Python
22 lines
701 B
Python
from __future__ import annotations
|
|
|
|
from playwright.async_api import async_playwright, Browser, BrowserContext
|
|
|
|
|
|
async def build_browser_context(headless: bool, viewport: dict[str, int], locale: str, timezone: str) -> BrowserContext:
|
|
playwright = await async_playwright().start()
|
|
browser: Browser = await playwright.chromium.launch(headless=headless)
|
|
context = await browser.new_context(
|
|
viewport=viewport,
|
|
locale=locale,
|
|
timezone_id=timezone,
|
|
)
|
|
context.set_default_timeout(30000)
|
|
return context
|
|
|
|
|
|
async def close_context(context: BrowserContext) -> None:
|
|
await context.close()
|
|
await context.browser.close()
|
|
await context._playwright.stop()
|