Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Use Playwright’s full-page screenshot option: in JavaScript, call await page.screenshot({ path: 'page.png', fullPage: true }). It captures the page’s full scrollable area rather than only the visible viewport. For a very tall page, choose the output scale deliberately and check whether the site’s lazy-loaded content or nested scroll regions need separate handling.

Capture the full scrollable page

Playwright’s documented full-page option asks for an image of the page as if the whole scrollable page fit on a very tall screen. It is not limited to the part currently visible in the browser viewport. See the Playwright Screenshots guide.

JavaScript or TypeScript

await page.screenshot({ path: 'page.png', fullPage: true });

Use this after navigating to the target page and obtaining a Playwright Page object. The call writes the screenshot to page.png.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Python

page.screenshot(path='page.png', full_page=True)

Python uses the keyword full_page with an underscore; JavaScript uses fullPage.

Choose an output scale for a tall capture

For a one-image-pixel-per-CSS-pixel result, set scale: 'css' in JavaScript or scale="css" in Python. The screenshot API’s default device scale can produce substantially larger images on high-DPI devices. For a tall page, that can mean a much larger output file and more memory needed to handle it. Check the installed version’s Page screenshot API reference for supported options.

// JavaScript / TypeScript
await page.screenshot({ path: 'page.png', fullPage: true, scale: 'css' });

# Python
page.screenshot(path='page.png', full_page=True, scale="css")

Choose the scale based on the destination: CSS scale keeps dimensions closer to the page’s CSS-pixel dimensions, while device scale preserves device-pixel detail and may create a larger image.

Save the file or process screenshot bytes

Set path to save the image directly. If you omit it, the screenshot API can return image bytes for further processing instead. The Page API also documents a timeout option; if a tall-page capture fails or an option is unavailable, consult the API reference for the Playwright version installed in your project.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check lazy-loaded content and nested scrolling

A full-page capture covers the page’s full scrollable area, but the documented behavior does not guarantee that content loaded only after scrolling—such as lazy-loaded images—will be fetched automatically. Nor does it establish that nested scroll containers are expanded. Verify these behaviors on the specific page before treating the image as a complete record.

  • If lower-page images are absent, check whether the site loads them only when they enter the viewport; trigger the page behavior needed to load them before capturing.
  • If a content area has its own scrollbar, check it separately: a full-page screenshot is not documented as expanding nested scroll regions.
  • For a page that changes while loading, make sure its relevant content is present before taking the screenshot.

Troubleshoot common tall-page capture issues

The output contains only the visible area

Confirm the option is enabled and spelled for the language in use: fullPage: true in JavaScript or full_page=True in Python.

The image file is unexpectedly large

Check whether the screenshot is using the default device scale on a high-DPI device. Try scale: 'css' when one pixel per CSS pixel is appropriate.

The capture times out or an option is rejected

Check the installed Playwright version’s Page screenshot API reference for the timeout setting and other option availability, then adjust the call to match that version.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Lazy-loaded images or content inside a scrollable panel are missing

The official screenshot documentation does not promise automatic loading of lazy content or expansion of nested scroll containers. Trigger loading as the page requires and inspect nested areas as a separate page-specific case.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

ScreenshotNeo can return a screenshot from one GET request, without setting up a Playwright browser. For example:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for request options. Before capture, ScreenshotNeo accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets; those steps can each be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server provides screenshot tools for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.

Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.