Skip to main content
Version: Next

PlaywrightPlugin

The BrowserPlugin serves two purposes. First, it is the base class that specialized controllers like PuppeteerPlugin or PlaywrightPlugin extend. Second, it allows the user to configure the automation libraries and feed them to BrowserPool for use.

Hierarchy

  • BrowserPlugin<BrowserType, SafeParameters<BrowserType[launch]>[0], PlaywrightBrowser>
    • PlaywrightPlugin

Index

Constructors

constructor

Properties

optionalreadonlyinheritedbrowserPerProxy

browserPerProxy?: boolean

optionalreadonlyinheritedignoreProxyCertificate

ignoreProxyCertificate?: boolean

readonlyinheritedlaunchOptions

launchOptions: undefined | LaunchOptions

readonlyinheritedlibrary

library: BrowserType<{}>

readonlyinheritedname

name: string = ...

optionalreadonlyinheritedproxyUrl

proxyUrl?: string

inheriteduseIncognitoPages

useIncognitoPages: boolean

optionalreadonlyinheriteduserDataDir

userDataDir?: string

Methods

createController

inheritedcreateLaunchContext

  • createLaunchContext(options): LaunchContext<BrowserType<{}>, undefined | LaunchOptions, Browser, undefined | { acceptDownloads?: boolean; baseURL?: string; bypassCSP?: boolean; clientCertificates?: { cert?: Buffer<ArrayBufferLike>; certPath?: string; key?: Buffer<ArrayBufferLike>; keyPath?: string; origin: string; passphrase?: string; pfx?: Buffer<ArrayBufferLike>; pfxPath?: string }[]; colorScheme?: null | light | dark | no-preference; contrast?: null | no-preference | more; deviceScaleFactor?: number; extraHTTPHeaders?: {}; forcedColors?: null | active | none; geolocation?: { accuracy?: number; latitude: number; longitude: number }; hasTouch?: boolean; httpCredentials?: { origin?: string; password: string; send?: unauthorized | always; username: string }; ignoreHTTPSErrors?: boolean; isMobile?: boolean; javaScriptEnabled?: boolean; locale?: string; logger?: Logger; offline?: boolean; permissions?: string[]; proxy?: { bypass?: string; password?: string; server: string; username?: string }; recordHar?: { content?: omit | embed | attach; mode?: full | minimal; omitContent?: boolean; path: string; urlFilter?: string | RegExp }; recordVideo?: { dir?: string; showActions?: { duration?: number; fontSize?: number; position?: top-left | top | top-right | bottom-left | bottom | bottom-right }; size?: { height: number; width: number } }; reducedMotion?: null | reduce | no-preference; screen?: { height: number; width: number }; serviceWorkers?: allow | block; storageState?: string | { cookies: { domain: string; expires: number; httpOnly: boolean; name: string; path: string; sameSite: Strict | Lax | None; secure: boolean; value: string }[]; origins: { localStorage: { name: string; value: string }[]; origin: string }[] }; strictSelectors?: boolean; timezoneId?: string; userAgent?: string; viewport?: null | { height: number; width: number } }, Page>
  • Creates a LaunchContext with all the information needed to launch a browser. Aside from library specific launch options, it also includes internal properties used by BrowserPool for management of the pool and extra features.


    Parameters

    • options: CreateLaunchContextOptions<BrowserType<{}>, undefined | LaunchOptions, Browser, undefined | { acceptDownloads?: boolean; baseURL?: string; bypassCSP?: boolean; clientCertificates?: { cert?: Buffer<ArrayBufferLike>; certPath?: string; key?: Buffer<ArrayBufferLike>; keyPath?: string; origin: string; passphrase?: string; pfx?: Buffer<ArrayBufferLike>; pfxPath?: string }[]; colorScheme?: null | light | dark | no-preference; contrast?: null | no-preference | more; deviceScaleFactor?: number; extraHTTPHeaders?: {}; forcedColors?: null | active | none; geolocation?: { accuracy?: number; latitude: number; longitude: number }; hasTouch?: boolean; httpCredentials?: { origin?: string; password: string; send?: unauthorized | always; username: string }; ignoreHTTPSErrors?: boolean; isMobile?: boolean; javaScriptEnabled?: boolean; locale?: string; logger?: Logger; offline?: boolean; permissions?: string[]; proxy?: { bypass?: string; password?: string; server: string; username?: string }; recordHar?: { content?: omit | embed | attach; mode?: full | minimal; omitContent?: boolean; path: string; urlFilter?: string | RegExp }; recordVideo?: { dir?: string; showActions?: { duration?: number; fontSize?: number; position?: top-left | top | top-right | bottom-left | bottom | bottom-right }; size?: { height: number; width: number } }; reducedMotion?: null | reduce | no-preference; screen?: { height: number; width: number }; serviceWorkers?: allow | block; storageState?: string | { cookies: { domain: string; expires: number; httpOnly: boolean; name: string; path: string; sameSite: Strict | Lax | None; secure: boolean; value: string }[]; origins: { localStorage: { name: string; value: string }[]; origin: string }[] }; strictSelectors?: boolean; timezoneId?: string; userAgent?: string; viewport?: null | { height: number; width: number } }, Page> = {}

    Returns LaunchContext<BrowserType<{}>, undefined | LaunchOptions, Browser, undefined | { acceptDownloads?: boolean; baseURL?: string; bypassCSP?: boolean; clientCertificates?: { cert?: Buffer<ArrayBufferLike>; certPath?: string; key?: Buffer<ArrayBufferLike>; keyPath?: string; origin: string; passphrase?: string; pfx?: Buffer<ArrayBufferLike>; pfxPath?: string }[]; colorScheme?: null | light | dark | no-preference; contrast?: null | no-preference | more; deviceScaleFactor?: number; extraHTTPHeaders?: {}; forcedColors?: null | active | none; geolocation?: { accuracy?: number; latitude: number; longitude: number }; hasTouch?: boolean; httpCredentials?: { origin?: string; password: string; send?: unauthorized | always; username: string }; ignoreHTTPSErrors?: boolean; isMobile?: boolean; javaScriptEnabled?: boolean; locale?: string; logger?: Logger; offline?: boolean; permissions?: string[]; proxy?: { bypass?: string; password?: string; server: string; username?: string }; recordHar?: { content?: omit | embed | attach; mode?: full | minimal; omitContent?: boolean; path: string; urlFilter?: string | RegExp }; recordVideo?: { dir?: string; showActions?: { duration?: number; fontSize?: number; position?: top-left | top | top-right | bottom-left | bottom | bottom-right }; size?: { height: number; width: number } }; reducedMotion?: null | reduce | no-preference; screen?: { height: number; width: number }; serviceWorkers?: allow | block; storageState?: string | { cookies: { domain: string; expires: number; httpOnly: boolean; name: string; path: string; sameSite: Strict | Lax | None; secure: boolean; value: string }[]; origins: { localStorage: { name: string; value: string }[]; origin: string }[] }; strictSelectors?: boolean; timezoneId?: string; userAgent?: string; viewport?: null | { height: number; width: number } }, Page>

inheritedlaunch

  • launch(launchContext): Promise<Browser>
  • Launches the browser using provided launch context.


    Parameters

    • launchContext: LaunchContext<BrowserType<{}>, undefined | LaunchOptions, Browser, undefined | { acceptDownloads?: boolean; baseURL?: string; bypassCSP?: boolean; clientCertificates?: { cert?: Buffer<ArrayBufferLike>; certPath?: string; key?: Buffer<ArrayBufferLike>; keyPath?: string; origin: string; passphrase?: string; pfx?: Buffer<ArrayBufferLike>; pfxPath?: string }[]; colorScheme?: null | light | dark | no-preference; contrast?: null | no-preference | more; deviceScaleFactor?: number; extraHTTPHeaders?: {}; forcedColors?: null | active | none; geolocation?: { accuracy?: number; latitude: number; longitude: number }; hasTouch?: boolean; httpCredentials?: { origin?: string; password: string; send?: unauthorized | always; username: string }; ignoreHTTPSErrors?: boolean; isMobile?: boolean; javaScriptEnabled?: boolean; locale?: string; logger?: Logger; offline?: boolean; permissions?: string[]; proxy?: { bypass?: string; password?: string; server: string; username?: string }; recordHar?: { content?: omit | embed | attach; mode?: full | minimal; omitContent?: boolean; path: string; urlFilter?: string | RegExp }; recordVideo?: { dir?: string; showActions?: { duration?: number; fontSize?: number; position?: top-left | top | top-right | bottom-left | bottom | bottom-right }; size?: { height: number; width: number } }; reducedMotion?: null | reduce | no-preference; screen?: { height: number; width: number }; serviceWorkers?: allow | block; storageState?: string | { cookies: { domain: string; expires: number; httpOnly: boolean; name: string; path: string; sameSite: Strict | Lax | None; secure: boolean; value: string }[]; origins: { localStorage: { name: string; value: string }[]; origin: string }[] }; strictSelectors?: boolean; timezoneId?: string; userAgent?: string; viewport?: null | { height: number; width: number } }, Page> = ...

    Returns Promise<Browser>

useRemoteConnection

  • useRemoteConnection(connection, parameters): void
  • Playwright remote connections only support incognito pages — connect() / connectOverCDP() don't accept persistent contexts. Force it on (and inform the user) when wired for a remote connection.


    Parameters

    Returns void