Set the screenshot option fullPage: true on the screenshot call. In Playwright and Puppeteer, that requests an image of the full scrollable page rather than only the currently visible viewport; both APIs default to viewport-only capture. It captures the page’s rendered state, so content that appears only after scrolling or interaction may need to be loaded first.
Set full-page capture in Playwright
Pass fullPage: true directly to page.screenshot(). Playwright defines this as capturing the full scrollable page, as if it were displayed on a very tall screen. The default is false (Playwright Screenshots guide; Page API).
As an Amazon Associate I earn from qualifying purchases.
await page.screenshot({ path: 'full-page.png', fullPage: true });
For example, after navigating to a page, save its full-page image like this:
Free tools Windows power users keep installed
One-click scans. No signup required.
await page.goto('https://example.com');
await page.screenshot({ path: 'full-page.png', fullPage: true });
The screenshot call—not navigation—controls whether the capture is full-page. Check that the option is spelled exactly and passed as part of the screenshot options.
#1 Best Overall
Set full-page capture in Puppeteer
Puppeteer uses the same option name and boolean value. Its ScreenshotOptions default is also false; set it to true to request the full page (Page.screenshot() API).
await page.screenshot({ path: 'full-page.png', fullPage: true });
A minimal navigation-and-capture sequence is:
await page.goto('https://example.com');
await page.screenshot({ path: 'full-page.png', fullPage: true });
If the result still shows only the viewport, confirm that your installed Puppeteer version supports the option and that fullPage is on the screenshot call.
Choose full page, clipping, or pixel scale
These options solve different capture problems. Full-page capture asks for the entire scrollable document; clipping selects a region; scale determines the output’s pixel dimensions.
Recommended Free Tools
Rank #2
| Need | Playwright | Puppeteer |
|---|---|---|
| Capture the entire scrollable page | fullPage: true |
fullPage: true |
| Capture a particular region | clip with x/y coordinates, width, and height |
clip |
| Choose CSS-pixel or device-pixel output | scale: "css" or scale: "device" |
Not stated in the cited API reference |
Playwright documents these controls in its Page API. Puppeteer documents clipping and captureBeyondViewport behavior alongside screenshot options (ScreenshotOptions). A clip is appropriate when you need a defined section, not the whole document. Use CSS scale for output sized in CSS pixels or device scale when device pixels are needed.
Make sure the page content is ready
fullPage: true changes the capture extent; it does not guarantee that every site-specific element has finished loading. The API references do not promise that content requiring later scrolling, interaction, or additional loading will appear automatically. Puppeteer’s screenshot guide demonstrates navigating before capture (Screenshots guide).
- Navigate to the target URL.
- Wait for the page or the specific content your capture needs to become available.
- Perform any interaction needed to reveal the desired state, such as opening a section or loading content.
- Capture with
fullPage: true, then inspect the image to confirm the content is present.
For lazy-loaded images or pages that load more items as the user scrolls, the exact preparation depends on the site. Do not assume a full-page option will trigger every site’s loading behavior.
Rank #3
Or skip the browser setup
ScreenshotNeo offers a screenshot API with a single GET request for a URL. For a full-page capture, add its full-page option to the request. See the ScreenshotNeo API documentation for the exact supported parameter.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture; those steps can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server lets AI agents use screenshot tools. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. See ScreenshotNeo for details and the docs for API options. Sign up free for 1,000 screenshots a month, with no card.
Troubleshoot incomplete or unexpected captures
- Only the viewport appears: Put
fullPage: truein the screenshot options, not in navigation options; verify the option name and installed package documentation. - Some page content is missing: The content may require scrolling, interaction, or more loading time. Prepare the page state before capture and inspect the output.
- You only need one section: Use the API’s
clipoption rather than capturing the whole scrollable page. - Output dimensions are not what you expect: In Playwright, select
scale: "css"for CSS-pixel scale orscale: "device"for device-pixel scale.
Frequently Asked Questions
Does full-page capture scroll the page in the same way a person does?
The documented behavior is a capture of the full scrollable page; it does not establish that every site’s scroll-triggered content will load. Prepare and inspect the rendered state.
Is `fullPage` enabled by default?
No. Playwright and Puppeteer both document its default as `false`.
Quick Recap
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.




