microsoft/playwright · error · Error
css screenshots are not implemented
Error message
css screenshots are not implemented
What it means
Error "css screenshots are not implemented" thrown in microsoft/playwright.
Source
Thrown at packages/playwright-core/src/server/webkit/webview/wvPage.ts:783
throw new Error('Method not implemented');
}
private validateScreenshotDimension(side: number, omitDeviceScaleFactor: boolean) {
// Cairo based implementations (Linux and Windows) have hard limit of 32767
// (see https://github.com/microsoft/playwright/issues/16727).
if (process.platform === 'darwin')
return;
if (!omitDeviceScaleFactor && this._page.browserContext._options.deviceScaleFactor)
side = Math.ceil(side * this._page.browserContext._options.deviceScaleFactor);
if (side > 32767)
throw new Error('Cannot take screenshot larger than 32767 pixels on any dimension');
}
async takeScreenshot(progress: Progress, format: string, documentRect: types.Rect | undefined, viewportRect: types.Rect | undefined, quality: number | undefined, fitsViewport: boolean, scale: 'css' | 'device'): Promise<Buffer> {
const rect = (documentRect || viewportRect)!;
const omitDeviceScaleFactor = scale === 'css';
if (omitDeviceScaleFactor)
throw new Error('css screenshots are not implemented');
this.validateScreenshotDimension(rect.width, omitDeviceScaleFactor);
this.validateScreenshotDimension(rect.height, omitDeviceScaleFactor);
const result = await progress.race(this._session.send('Page.snapshotRect', { ...rect, coordinateSystem: documentRect ? 'Page' : 'Viewport' }));
const prefix = 'data:image/png;base64,';
let buffer: Buffer = Buffer.from(result.dataURL.substr(prefix.length), 'base64');
if (format === 'jpeg') {
buffer = jpegjs.encode(PNG.sync.read(buffer), quality).data;
} else if (format === 'webp') {
const png = PNG.sync.read(buffer);
// Match the native WebKit encoder: webp quality 100 (or omitted) is lossless.
buffer = (quality === undefined || quality >= 100) ? encodeWebp(png, { lossless: true }) : encodeWebp(png, { quality });
}
return buffer;
}
async getContentFrame(handle: dom.ElementHandle): Promise<frames.Frame | null> {
if (!handle._objectId)
return null;View on GitHub (pinned to c8fc3bf8d3)
When it happens
Trigger: Thrown at packages/playwright-core/src/server/webkit/webview/wvPage.ts:783 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of microsoft/playwright@c8fc3bf8d3 (2026-08-12).
Data as JSON: /api/errors/dbd9c552e803fdb3.
Report an issue: GitHub.