Skip to content

Upgrading puppeteer 22 to 23

Breaking22.15.0 → 23.11.1Breaking3New8Changed29Fixed2Other2

BreakingUpgrade verdict

3 breaking changes.

  • Remove support for NPM configuration.
  • Rename product to browser.
  • Support multiple browser downloads for Puppeteer.
3 items need code or config changes

Adds chromium-bidi 0.11.0, typed-query-selector ^2.12.0.

Breaking3
Remove support for NPM configuration.
Rename product to browser.
Support multiple browser downloads for Puppeteer.

Generated by DepDelta from published .d.ts files. Not mixed with prose notes.

  • removed: function downloadBrowser(): Promise<void>
  • added: function downloadBrowsers(): Promise<void>
  • changed: const puppeteer: PuppeteerNode → const puppeteer: PuppeteerCore.PuppeteerNode
  • removed: function downloadBrowser(): Promise<void>
  • added: function downloadBrowsers(): Promise<void>
  • changed: const puppeteer: PuppeteerNode → const puppeteer: PuppeteerCore.PuppeteerNode
  • removed: abstract class ProductLauncher
  • removed: abstract method BrowserContext.isIncognito(): boolean
  • removed: abstract method Frame.isOOPFrame(): boolean
  • removed: abstract method ProductLauncher.defaultArgs(object: BrowserLaunchArgumentOptions): string[]
  • removed: abstract method ProductLauncher.executablePath(channel?: ChromeReleaseChannel): string
  • removed: function clearCustomQueryHandlers(): void
  • removed: function customQueryHandlerNames(): string[]
  • removed: function registerCustomQueryHandler(name: string, handler: CustomQueryHandler): void
  • removed: function unregisterCustomQueryHandler(name: string): void
  • removed: get ProductLauncher.product(): Product
  • removed: get PuppeteerNode.defaultProduct(): Product
  • removed: get PuppeteerNode.lastLaunchedProduct(): Product
  • removed: interface BrowserConnectOptions
  • removed: interface BrowserLaunchArgumentOptions
  • removed: interface PuppeteerLaunchOptions extends LaunchOptions, BrowserLaunchArgumentOptions, BrowserConnectOptions
  • removed: method ProductLauncher.launch(options?: PuppeteerNodeLaunchOptions): Promise<Browser>
  • removed: property BrowserConnectOptions.defaultViewport?: Viewport | null
  • removed: property BrowserConnectOptions.ignoreHTTPSErrors?: boolean
  • removed: property BrowserConnectOptions.protocol?: ProtocolType
  • removed: property BrowserConnectOptions.protocolTimeout?: number
  • removed: property BrowserConnectOptions.slowMo?: number
  • removed: property BrowserConnectOptions.targetFilter?: TargetFilterCallback
  • removed: property BrowserLaunchArgumentOptions.args?: string[]
  • removed: property BrowserLaunchArgumentOptions.debuggingPort?: number
  • removed: property BrowserLaunchArgumentOptions.devtools?: boolean
  • removed: property BrowserLaunchArgumentOptions.headless?: boolean | 'shell'
  • removed: property BrowserLaunchArgumentOptions.userDataDir?: string
  • removed: property Configuration.browserRevision?: string
  • removed: property Configuration.defaultProduct?: Product
  • removed: property Configuration.downloadBaseUrl?: string
  • removed: property Configuration.skipChromeDownload?: boolean
  • removed: property Configuration.skipChromeHeadlessShellDownload?: boolean
  • removed: property LaunchOptions.product?: Product
  • removed: property PuppeteerLaunchOptions.extraPrefsFirefox?: Record<string, unknown>
  • removed: property PuppeteerLaunchOptions.product?: Product
  • removed: type Product = 'chrome' | 'firefox'
  • changed: abstract method HTTPResponse.buffer(): Promise<Buffer> → method HTTPResponse.buffer(): Promise<Buffer>
  • changed: abstract method Page.pdf(options?: PDFOptions): Promise<Buffer> → abstract method Page.pdf(options?: PDFOptions): Promise<Uint8Array>
  • changed: abstract method Touchscreen.touchEnd(): Promise<void> → method Touchscreen.touchEnd(): Promise<void>
  • changed: abstract method Touchscreen.touchMove(x: number, y: number): Promise<void> → method Touchscreen.touchMove(x: number, y: number): Promise<void>
  • changed: abstract method Touchscreen.touchStart(x: number, y: number): Promise<void> → abstract method Touchscreen.touchStart(x: number, y: number): Promise<TouchHandle>
  • changed: const puppeteer: PuppeteerNode → const puppeteer: PuppeteerCore.PuppeteerNode
  • changed: constructor Connection(url: string, transport: ConnectionTransport, delay?: number, timeout?: number) → constructor Connection(url: string, transport: ConnectionTransport, delay?: number, timeout?: number, rawErrors?: boolean)
  • changed: interface ConnectOptions extends BrowserConnectOptions → interface ConnectOptions
  • changed: interface LaunchOptions → interface LaunchOptions extends ConnectOptions
  • changed: method ElementHandle.screenshot(options?: Readonly<ScreenshotOptions>): Promise<Buffer> → method ElementHandle.screenshot(options?: Readonly<ScreenshotOptions>): Promise<Uint8Array>
  • changed: method ElementHandle.touchMove(this: ElementHandle<Element>): Promise<void> → method ElementHandle.touchMove(this: ElementHandle<Element>, touch?: TouchHandle): Promise<void>
  • changed: method ElementHandle.touchStart(this: ElementHandle<Element>): Promise<void> → method ElementHandle.touchStart(this: ElementHandle<Element>): Promise<TouchHandle>
  • changed: method Page.screenshot(options?: Readonly<ScreenshotOptions>): Promise<Buffer> → method Page.screenshot(options?: Readonly<ScreenshotOptions>): Promise<Uint8Array>
  • changed: method PuppeteerNode.defaultArgs(options?: BrowserLaunchArgumentOptions): string[] → method PuppeteerNode.defaultArgs(options?: LaunchOptions): string[]
  • changed: method PuppeteerNode.executablePath(channel?: ChromeReleaseChannel): string → method PuppeteerNode.executablePath(): string
  • changed: method PuppeteerNode.launch(options?: PuppeteerLaunchOptions): Promise<Browser> → method PuppeteerNode.launch(options?: LaunchOptions): Promise<Browser>
  • changed: method Tracing.stop(): Promise<Buffer | undefined> → method Tracing.stop(): Promise<Uint8Array | undefined>
  • changed: property Cookie.partitionKey?: string → property Cookie.partitionKey?: CookiePartitionKey | string
  • changed: property CookieParam.partitionKey?: string → property CookieParam.partitionKey?: CookiePartitionKey | string
  • changed: property ResponseForRequest.headers: Record<string, unknown> → property ResponseForRequest.headers: Record<string, string | string[] | unknown>
  • changed: type NodeFor<ComplexSelector extends string> = TypeSelectorOfComplexSelector<ComplexSelector> extends infer TypeSelector ? TypeSelector extends keyof HTMLElementTagNameMap | keyof SVGElementTagNameMap ? Ele… → type NodeFor<ComplexSelector extends string> = ParseSelector<ComplexSelector>
  • changed: type PuppeteerNodeLaunchOptions = BrowserLaunchArgumentOptions & LaunchOptions & BrowserConnectOptions → type PuppeteerNodeLaunchOptions = LaunchOptions
  • added: abstract class BrowserLauncher
  • added: abstract method BrowserContext.cookies(): Promise<Cookie[]>
  • added: abstract method BrowserContext.setCookie(...cookies: CookieData[]): Promise<void>
  • added: abstract method BrowserLauncher.defaultArgs(object: LaunchOptions): string[]
  • added: abstract method BrowserLauncher.executablePath(channel?: ChromeReleaseChannel, validatePath?: boolean): string
  • added: abstract method ElementHandle.backendNodeId(): Promise<number>
  • added: abstract method HTTPResponse.content(): Promise<Uint8Array>
  • added: abstract method Page.getDefaultNavigationTimeout(): number
  • added: class TouchError extends PuppeteerError
  • added: export { Session }
  • added: function convertCookiesPartitionKeyFromPuppeteerToCdp(partitionKey: CookiePartitionKey | string | undefined): Protocol.Network.CookiePartitionKey | undefined
  • added: get BrowserLauncher.browser(): SupportedBrowser
  • added: get PuppeteerNode.defaultBrowser(): SupportedBrowser
  • added: get PuppeteerNode.lastLaunchedBrowser(): SupportedBrowser
  • added: interface ChromeHeadlessShellSettings
  • added: interface ChromeSettings
  • added: interface CookieData
  • added: interface CookiePartitionKey
  • added: interface DownloadBehavior
  • added: interface FirefoxSettings
  • added: interface SupportedWebDriverCapabilities
  • added: interface TouchHandle
  • added: method Browser.cookies(): Promise<Cookie[]>
  • added: method Browser.deleteCookie(...cookies: Cookie[]): Promise<void>
  • added: method Browser.setCookie(...cookies: Cookie[]): Promise<void>
  • added: method BrowserContext.deleteCookie(...cookies: Cookie[]): Promise<void>
  • added: method BrowserLauncher.launch(options?: LaunchOptions): Promise<Browser>
  • added: method PuppeteerNode.executablePath(channel: ChromeReleaseChannel): string
  • added: method PuppeteerNode.executablePath(options: LaunchOptions): string
  • added: method TouchHandle.end(): Promise<void>
  • added: method TouchHandle.move(x: number, y: number): Promise<void>
  • added: property BrowserContextOptions.downloadBehavior?: DownloadBehavior
  • added: property ChromeHeadlessShellSettings.downloadBaseUrl?: string
  • added: property ChromeHeadlessShellSettings.skipDownload?: boolean
  • added: property ChromeHeadlessShellSettings.version?: string
  • added: property ChromeSettings.downloadBaseUrl?: string
  • added: property ChromeSettings.skipDownload?: boolean
  • added: property ChromeSettings.version?: string
  • added: property Configuration.chrome?: ChromeSettings
  • added: property Configuration.defaultBrowser?: SupportedBrowser
  • added: property Configuration.firefox?: FirefoxSettings
  • added: property Configuration['chrome-headless-shell']?: ChromeHeadlessShellSettings
  • added: property ConnectOptions.acceptInsecureCerts?: boolean
  • added: property ConnectOptions.capabilities?: SupportedWebDriverCapabilities
  • added: property ConnectOptions.defaultViewport?: Viewport | null
  • added: property ConnectOptions.downloadBehavior?: DownloadBehavior
  • added: property ConnectOptions.protocol?: ProtocolType
  • added: property ConnectOptions.protocolTimeout?: number
  • added: property ConnectOptions.slowMo?: number
  • added: property ConnectOptions.targetFilter?: TargetFilterCallback
  • added: property CookieData.domain: string
  • added: property CookieData.expires?: number
  • added: property CookieData.httpOnly?: boolean
  • added: property CookieData.name: string
  • added: property CookieData.partitionKey?: CookiePartitionKey | string
  • added: property CookieData.path?: string
  • added: property CookieData.priority?: CookiePriority
  • added: property CookieData.sameParty?: boolean
  • added: property CookieData.sameSite?: CookieSameSite
  • added: property CookieData.secure?: boolean
  • added: property CookieData.sourceScheme?: CookieSourceScheme
  • added: property CookieData.value: string
  • added: property CookiePartitionKey.hasCrossSiteAncestor?: boolean
  • added: property CookiePartitionKey.sourceOrigin: string
  • added: property DeleteCookiesRequest.partitionKey?: CookiePartitionKey | string
  • added: property DownloadBehavior.downloadPath?: string
  • added: property DownloadBehavior.policy: DownloadPolicy
  • added: property FirefoxSettings.downloadBaseUrl?: string
  • added: property FirefoxSettings.skipDownload?: boolean
  • added: property FirefoxSettings.version?: string
  • added: property LaunchOptions.args?: string[]
  • added: property LaunchOptions.browser?: SupportedBrowser
  • added: property LaunchOptions.debuggingPort?: number
  • added: property LaunchOptions.devtools?: boolean
  • added: property LaunchOptions.headless?: boolean | 'shell'
  • added: property LaunchOptions.userDataDir?: string
  • added: property SnapshotOptions.includeIframes?: boolean
  • added: property SupportedWebDriverCapabilities.alwaysMatch?: SupportedWebDriverCapability
  • added: property SupportedWebDriverCapabilities.firstMatch?: SupportedWebDriverCapability[]
  • added: property WaitForTargetOptions.signal?: AbortSignal
  • added: type BrowserConnectOptions = ConnectOptions
  • added: type BrowserLaunchArgumentOptions = LaunchOptions
  • added: type DownloadPolicy = 'deny' | 'allow' | 'allowAndName' | 'default'
  • added: type PuppeteerLaunchOptions = LaunchOptions
  • added: type SupportedBrowser = 'chrome' | 'firefox'
  • added: type SupportedWebDriverCapability = Exclude<Session.CapabilityRequest, 'unhandledPromptBehavior' | 'acceptInsecureCerts'>