Skip to main content
Version: Next

Page.screenshot() method


class Page {
screenshot(options?: ScreenshotOptions): Promise<Buffer | string>;




Promise<Buffer | string>

Promise which resolves to buffer or a base64 string (depending on the value of encoding) with captured screenshot.


Options object which might have the following properties:

  • path : The file path to save the image to. The screenshot type will be inferred from file extension. If path is a relative path, then it is resolved relative to current working directory. If no path is provided, the image won't be saved to the disk.

  • type : Specify screenshot type, can be either jpeg or png. Defaults to 'png'.

  • quality : The quality of the image, between 0-100. Not applicable to png images.

  • fullPage : When true, takes a screenshot of the full scrollable page. Defaults to false.

  • clip : An object which specifies clipping region of the page. Should have the following fields:
    - x : x-coordinate of top-left corner of clip area.
    - y : y-coordinate of top-left corner of clip area.
    - width : width of clipping area.
    - height : height of clipping area.

  • omitBackground : Hides default white background and allows capturing screenshots with transparency. Defaults to false.

  • encoding : The encoding of the image, can be either base64 or binary. Defaults to binary.

  • captureBeyondViewport : When true, captures screenshot beyond the viewport. When false, falls back to old behaviour, and cuts the screenshot by the viewport size. Defaults to true.

  • fromSurface : When true, captures screenshot from the surface rather than the view. When false, works only in headful mode and ignores page viewport (but not browser window's bounds). Defaults to true.

NOTE: Screenshots take at least 1/6 second on OS X. See for discussion.