What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
If your JavaScript controls a Chrome page through Puppeteer, capture the whole document with await page.screenshot({ path: 'full-page.png', fullPage: true });. That option is built for full-page screenshots. If you mean JavaScript running in a Chrome extension, chrome.tabs.captureVisibleTab() captures only the visible tab area—not the entire page. The right method depends on whether you are automating a browser, building an extension, or taking a one-off manual screenshot.
Choose the right Chrome screenshot method
| Method | Best for | Full-page support | Main limitation |
|---|---|---|---|
| Puppeteer | Node.js automation that controls a browser page | fullPage: true |
Requires a Puppeteer-controlled page; it is not code to paste into a website console. |
| Chrome DevTools Protocol (CDP) | Applications that use Chrome’s lower-level debugging protocol | Page.captureScreenshot supports captureBeyondViewport |
You must manage the CDP session and the returned base64 image data. |
| Chrome extension API | An extension capturing the current tab | No built-in full-page option; it captures the visible area | Full-page behavior requires a separate scroll-and-stitch implementation. |
| DevTools command menu | A one-time manual capture | Offers a capture-full-size screenshot command | This is a user-interface workflow, not JavaScript automation. |
| Full-page capture extension | Occasional captures without writing automation | Depends on the extension | Permissions and behavior vary. GoFullPage is one example, not an endorsement: Chrome Web Store listing. |
For code that controls Chrome, Puppeteer is the most direct option. Use CDP if you already have a protocol client. Use the extension API only when you need an extension-specific workflow and can handle visible-area capture or build the additional stitching logic.
Take a full-page screenshot with Puppeteer
Puppeteer’s fullPage screenshot option captures the full page rather than just the viewport. The following Node.js example opens a URL and saves the image as full-page.png. Install Puppeteer in your project first with npm install puppeteer.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: true });
try {
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle0' });
await page.screenshot({ path: 'full-page.png', fullPage: true });
} finally {
await browser.close();
}
})();
Run the saved script with Node.js. Puppeteer’s current screenshot options reference displayed version 25.12.0 when consulted; version numbers change, so check the documentation for the version installed in your project: Puppeteer ScreenshotOptions.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errors#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Wait for the page you actually need
waitUntil: 'networkidle0' is one possible navigation wait condition, not proof that every element is ready. Pages may keep making requests, load content only when scrolled, or render personalized content after navigation. If the page uses lazy-loaded images or scroll-triggered sections, scroll through it and wait for the relevant content before taking the screenshot. Inspect the output rather than assuming that a full-page capture forced every element to load.
Adjust the screenshot options
Puppeteer’s screenshot options include a destination path, image format, quality, clipping and full-page capture. For example, choose a supported image format with type; use quality for JPEG or WebP output where supported; and use clip when you need a specific region instead of the full page. Consult the installed version’s reference before relying on a particular option or combination.
Use Chrome DevTools Protocol for lower-level control
CDP exposes the Page.captureScreenshot method. Its parameters include output format, quality, clipping, and captureBeyondViewport. The live protocol reference lists captureBeyondViewport as false by default; set it to true when the capture needs to extend beyond the viewport. The method returns image data as base64, which your application must decode and save.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Page.captureScreenshot({
format: 'png',
captureBeyondViewport: true
})
This is a protocol command, not a standalone browser-page function: your CDP client must establish a session, use the Page domain as required by that client, invoke the command, and handle the response. See the Chrome DevTools Protocol Page reference for the current method parameters and response.
Recommended Free Tools
What a Chrome extension can capture
The Chrome extension method chrome.tabs.captureVisibleTab() captures the visible area of the active tab in a window. It is not a full-page API. It is also not available to arbitrary JavaScript running in a webpage or a normal page console: the Tabs API is for extension service workers and extension pages, not content scripts.
An extension needs the activeTab or all_urls permission. Chrome describes activeTab as temporary host permission granted following a user invocation. The API’s documented maximum rate is two calls per second (Chrome 92+). Repeatedly scrolling, capturing, and stitching images is therefore a separate implementation with timing, layout, and rate-limit concerns. See the Chrome Tabs API reference.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Account for page behavior before trusting the image
- Lazy-loaded content: Images or sections may not exist until the page scrolls them into view. Scroll deliberately, allow rendering time, then inspect the capture.
- Sticky and fixed elements: They can behave differently in full-page capture than during ordinary scrolling. Scroll-and-stitch approaches may repeat fixed headers in multiple strips.
- Nested scroll areas: A full-page screenshot of the document does not necessarily expand an inner panel with its own scrollbar.
- Frames: Embedded content may need special handling depending on the capture method and the page.
- Animations and dynamic content: Moving or continuously updated elements can make captures inconsistent. Wait for a suitable state when repeatability matters.
- Very long pages: Large screenshots can consume significant memory or encounter implementation-specific limits. Do not assume an unlimited capture height.
These behaviors vary by site and capture implementation. No API option guarantees that every dynamic, personalized, or embedded element will appear exactly as a human sees it.
Troubleshoot common failures
The image contains only the viewport
With Puppeteer, confirm that the call includes fullPage: true. With direct CDP, set captureBeyondViewport: true if the desired capture extends outside the viewport. The extension API captures only the visible area, so a single call cannot provide a full-page image.
Content near the bottom is missing
The page may load it only after scrolling. Scroll the document in steps, wait for the content to render, and take the screenshot after it is present. A navigation wait condition alone does not guarantee lazy-loaded content has appeared.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
The screenshot is blank or incomplete
Check that navigation finished and that the target page is reachable in the automated browser. Review the screenshot format and the CDP response handling if using a protocol client. For pages that rely on delayed scripts or user interaction, wait for a page-specific selector or state rather than relying only on a generic network-idle condition.
A sticky header repeats in the image
This commonly affects implementations that capture separate viewport-sized sections and stitch them together. Prefer a true full-page capture option where available; if stitching is unavoidable, account for fixed and sticky elements in the capture logic.
chrome.tabs is undefined
The code is likely running in a webpage context rather than an extension service worker or extension page. The Tabs API is an extension API; it is not exposed to ordinary page JavaScript or content scripts.
Extension captures fail or are throttled
Verify the extension has activeTab or all_urls permission and that the intended tab is active. If capturing repeatedly, stay within Chrome’s documented maximum of two captureVisibleTab() calls per second.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Or skip the browser setup
If you want a screenshot from one HTTP request instead of installing and managing Chrome automation, ScreenshotNeo accepts a URL and returns an image or PDF. Its API documentation is at screenshotneo.com/docs.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed. Its MCP server lets AI agents use screenshot tools. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month, with no card required.
FAQ
Can I run Puppeteer code in Chrome’s address bar or page console?
No. Puppeteer code runs in a Node.js script that controls a browser page; it is not ordinary JavaScript executed inside the website.
Can a full-page screenshot include everything inside an embedded page?
Not necessarily. Frames and independently scrolling embedded content can require additional handling, and results depend on the page and capture implementation.
Does Chrome’s extension screenshot API work in a content script?
No. Chrome documents the Tabs API for extension service workers and extension pages, not content scripts.
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.

