How to Screenshot an Entire Browser Page
Capture a complete webpage beyond the viewport with Firefox, Chrome DevTools, or a one-call ScreenshotNeo API request.
A full-page screenshot captures the entire document, including content below the visible browser viewport. For a one-off image, use your browser’s built-in full-page capture: Firefox offers Save full page, while Chrome provides Capture a full size screenshot in DevTools.
What a full-page screenshot includes
An ordinary screenshot records the pixels currently visible in the viewport. A full-page screenshot renders the document beyond that viewport and saves it as one image. Choose a full-page option rather than a visible-viewport or selected-area option.
Firefox: Save full page
- Open the webpage you want to capture.
- Right-click an empty part of the page. On macOS, Control-click.
- Select Take Screenshot. You can also open the tool with Ctrl+Shift+S on Windows/Linux or Command+Shift+S on macOS.
- In the capture interface, choose Save full page.
- Download the image, or use the copy option if it is shown.
Firefox also offers selected-region and visible-viewport captures. The downloaded filename includes a timestamp and page title according to Mozilla’s screenshot instructions.
Firefox Developer Tools alternatives
If DevTools is already open, enable Take a screenshot of the entire page under Developer Tools settings and Available Toolbox Buttons, then use the screenshot button. Firefox’s Web Console also supports:
screenshot page.png --fullpage
These workflows are documented in Firefox Source Docs, which also describes element screenshots.
Chrome: Capture a full size screenshot
- Open the page in Chrome and open DevTools with F12, Ctrl+Shift+I, or Command+Option+I.
- Turn on Device Mode with the device-toolbar button.
- Open Device Mode’s More options menu.
- Select Capture a full size screenshot.
Chrome’s documentation says this capture includes content outside the viewport. Do not choose Capture area screenshot when you need the entire document; that command is for a selected area. See Chrome Device Mode and Google’s DevTools screenshot workflows.
Chrome Command Menu
Open the DevTools Command Menu, type screenshot, and select the command you need. Chrome documents area capture through this menu, while full-size capture remains available from Device Mode. The exact labels can vary by Chrome version and localization; use the command that explicitly says full size or full page.
Edge and Safari
Menu names and full-page support can change between browser versions, operating systems, and localizations. The research for this guide did not verify current official Edge or Safari steps, so check your browser’s current help documentation rather than relying on an old shortcut. Look specifically for a command named full page, full size, or entire page.
Choosing the right capture method
| Method | Best for | Capture scope | Output |
|---|---|---|---|
| Firefox Save full page | Fast manual captures | Entire document | Downloaded image or copy |
| Firefox DevTools button | Developers already in DevTools | Entire page or element | Downloaded image |
| Firefox Web Console | Repeatable console commands | Entire page with --fullpage |
Named image file |
| Chrome Device Mode | Desktop Chrome workflows | Full document outside viewport | Downloaded image |
| Chrome area capture | A selected region | Only the selected area | Downloaded image |
Dynamic pages and edge cases
- Lazy-loaded sections: A page may load content only after scrolling. The browser’s capture behavior depends on the page implementation, so verify that lower sections appear in the result.
- Sticky headers: Fixed navigation can repeat down a long image or cover content. Inspect the output and temporarily hide the header if necessary.
- Animations and carousels: A capture records one moment in time. Pause animations when a stable frame matters.
- Cookie banners, chat widgets, and popups: Dismiss or close them before capturing if they obscure the page.
- Very tall documents: Large images can be slow to open or exceed editor limits. Consider capturing sections or exporting a PDF when a single raster image is impractical.
- Embedded frames: Cross-origin frames and third-party content may render differently from the surrounding page. Confirm that required embeds are visible.
- Authentication: Sign in first and keep the session active. Never include passwords or access tokens in a shared screenshot.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| Only the visible area was saved | A viewport or area command was selected | Use Firefox Save full page or Chrome Capture a full size screenshot. |
| The screenshot button is missing in Firefox | The DevTools toolbox button is disabled | Open DevTools settings, enable Take a screenshot of the entire page, then retry. |
| Lower content is blank | Lazy loading, a script error, or a network request has not completed | Scroll through the page once, wait for content, reload, and capture again. Check the Console for errors. |
| A popup covers the result | Consent, newsletter, or chat overlay remained open | Dismiss it before capture or hide the overlay temporarily with DevTools. |
| The image is unexpectedly huge | The document is unusually tall or device scale is high | Capture sections, reduce the emulated viewport scale, or use a PDF. |
| Labels differ from this guide | Browser version, OS, or localization changed the UI | Search the current browser help for “full page” or “full size screenshot.” |
Or skip the browser setup
ScreenshotNeo returns a full-page screenshot from one HTTP request. It can load lazy images, remove cookie and consent banners plus 60+ known newsletter and chat widgets before capture, and supports PNG, JPEG, WebP, or PDF output.
See the ScreenshotNeo API documentation for all options. This basic request captures the entire page:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo does not bill bot checks or CAPTCHAs, blank pages, timeouts, failed loads, or cache hits; the response identifies the page verdict and billing status with X-Page-Verdict and X-Billed headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf 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 shots. Create a free ScreenshotNeo account.
Automation options and configuration
For repeated captures, an API avoids manually opening DevTools. ScreenshotNeo supports full-page capture, CSS element capture, dark mode, device presets or custom viewports, retina scale, custom CSS and JavaScript, click actions, selector waits, delays, network-idle waits, request blocking, custom headers and cookies, user agents, authorization, timezone and geolocation, transparent backgrounds, resizing, configurable caching, signed image links, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call, and a usage API. Every feature is available on every plan.
Performance, reliability, and cost notes
- Browser captures run locally and are convenient for occasional work; long pages consume more memory and produce larger files.
- For automation, wait for a selector, a delay, or network idle so late content has time to render.
- Use caching with a TTL when the same URL is captured repeatedly. For many URLs, bulk capture can reduce request overhead.
- Use asynchronous jobs and signed webhooks when captures may take longer than a normal request.
- With ScreenshotNeo, clean successful shots are billed; failed loads, blank pages, bot checks, timeouts, and cache hits are not billed. Plans are Free (1,000/month), Starter $5/3,000, Growth $15/15,000, Pro $39/60,000, Scale $99/250,000, and Business $249/1,000,000. Yearly billing gives two months free.
FAQ
Is a full-page screenshot the same as a scrolling screenshot?
It serves the same purpose: one image containing content below the viewport. The browser creates it through its full-page or full-size capture workflow rather than requiring manual scrolling and stitching.
Can I capture just one element?
Firefox DevTools supports element screenshots. ScreenshotNeo accepts a CSS selector when you need a repeatable automated element capture.
Should I use PNG, JPEG, WebP, or PDF?
Use PNG for sharp interface text, JPEG for smaller photographic files, WebP for efficient web delivery, and PDF when the result is intended for printing or document sharing.
Why does the page look different in an automated capture?
Viewport size, device scale, cookies, user agent, timezone, geolocation, blocked resources, and page timing can all change rendering. Match the browser conditions and wait for the page’s final state.
Where can I find the current ScreenshotNeo parameters?
Use the ScreenshotNeo documentation, which lists the request options and response behavior.


