First determine whether the page itself is wider than the intended image or whether the missing content sits inside a nested scrolling element. Compare a viewport screenshot with a full-page capture, inspect document and element widths, then choose the capture method that fits the target: fullPage for the document, clip for a rectangle, or an element screenshot for a specific DOM node. The exact fix depends on the page, capture options, and installed Puppeteer and Chrome versions.
1. Identify what is clipped
Capture the same page state once at the configured viewport and once with fullPage: true. If both images lose content at the same horizontal point, start with the page layout or viewport. If only the full-page image differs, investigate full-page geometry and CSS that depends on viewport dimensions.
As an Amazon Associate I earn from qualifying purchases.
Check the configured viewport with page.viewport(), but note that Puppeteer documents this as returning the configured viewport settings; it does not check the actual page viewport. For reference, Puppeteer’s current screenshot options are documented in the ScreenshotOptions API reference.
2. Inspect document width and overflow
Compare the document’s client width and scroll width, then inspect the bounding boxes of elements that extend beyond the expected right edge. These are ordinary DOM measurements for diagnosis, not guarantees about Puppeteer’s screenshot implementation.
#1 Best Overall
- CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
- INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
- THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
- WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
- A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents
const geometry = await page.evaluate(() => ({
clientWidth: document.documentElement.clientWidth,
scrollWidth: document.documentElement.scrollWidth,
viewportWidth: window.innerWidth,
viewportHeight: window.innerHeight,
}));
console.log(geometry);
const wideElements = await page.evaluate(() => {
const limit = document.documentElement.clientWidth;
return [...document.querySelectorAll('*')]
.map(el => ({
tag: el.tagName,
id: el.id,
className: typeof el.className === 'string' ? el.className : '',
left: el.getBoundingClientRect().left,
right: el.getBoundingClientRect().right,
width: el.getBoundingClientRect().width,
scrollWidth: el.scrollWidth,
clientWidth: el.clientWidth,
overflowX: getComputedStyle(el).overflowX,
}))
.filter(el => el.right > limit || el.left < 0 || el.scrollWidth > el.clientWidth);
});
console.table(wideElements);
If scrollWidth exceeds clientWidth, find the element responsible. Decide whether the content should wrap, be constrained by the page’s CSS, or remain intentionally wider than the viewport. Also look for nested regions styled with overflow: auto or overflow: scroll: their scrollable content is separate from the document’s scrolling area.
3. Choose the screenshot method for the target
| Method | Use it for | Important limitation |
|---|---|---|
page.screenshot({ fullPage: true }) |
The whole document. | A document-wide capture does not guarantee that content inside a separate scrolling element is included. |
page.screenshot({ clip: { x, y, width, height } }) |
A known rectangular region. | Set bounds for the intended output region and verify behavior with your installed versions. |
elementHandle.screenshot() |
A specific DOM element. | Puppeteer’s guide says it attempts to scroll a hidden element into view; that does not guarantee capture of every oversized element or all content in an inner scroller. |
Whole document
await page.screenshot({ path: 'page.png', fullPage: true });
Puppeteer documents fullPage as a request to capture the full page. Its screenshot options also include captureBeyondViewport; the documented default is false when no clip is set and true when a clip is set. See the ScreenshotOptions API reference for the installed API’s current details.
Rank #2
- CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
- 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
- SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
- INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
- THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
Specific rectangle
await page.screenshot({
path: 'region.png',
clip: { x: 0, y: 0, width: 1200, height: 800 },
});
Use the rectangle’s x, y, width, and height to express the exact region you need. A clip is not a general remedy for a page whose layout is unexpectedly too wide; it simply captures the bounds you request.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →One element
const el = await page.waitForSelector('.report');
if (!el) throw new Error('Element .report was not found');
await el.screenshot({ path: 'report.png' });
The official Puppeteer Screenshots guide documents page and element screenshot methods. If the element contains its own scrollable content, inspect that container separately rather than assuming its full contents will appear in the element screenshot.
Rank #3
- Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
- Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
- Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
- In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
- Ultra-thin bezels: Maximize your viewing experience with thin bezels.
4. Check viewport-relative CSS
Pages using vw or vh can respond differently if the effective capture dimensions differ from the viewport dimensions used to lay out the page. Compare computed styles and element bounds before and after capture. If the layout changes only during full-page capture, reproduce it with your current Puppeteer and Chrome versions before changing your capture strategy.
A 2017 report in Puppeteer issue #703 described full-page screenshot width affecting viewport-relative CSS and discussed retaining viewport width as a workaround. That is historical issue discussion, not current official guidance or proof of a universal present-day bug. Changing viewport width may also change responsive layout, so verify the page you actually need to capture.
Rank #4
- CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
- SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
- MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
- KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
- INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient
5. Handle nested scrolling regions and tall pages
Content inside an inner scroller
A page-level full-page capture covers the document’s page area; it should not be assumed to scroll every nested container. A historical report, Puppeteer issue #746, described a central scrolling region whose contents were not included in a document-wide screenshot. If that is your case, identify the scrolling element and capture its content with a process designed for that element, or change the page’s layout for the capture if that is appropriate.
Free tools Windows power users keep installed
One-click scans. No signup required.
Very large output
Older reports describe crashes or clipping on very tall screenshots. For example, Puppeteer issue #5300 concerned Puppeteer 2.0.0 with Chromium 79. Its observations and workarounds are version-specific; they do not establish a current Chromium pixel limit. Resizing the viewport can also fire a page resize event and alter responsive layout.
Best Value
- 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
- 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
- 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.
Version history can matter: the Puppeteer changelog records a 22.12.1 fix dated 2024-06-26 to reset the viewport after a full-page screenshot when defaultViewport is null. Check your installed version and changelog before applying advice from an old issue.
6. Troubleshoot by symptom
| Symptom | Likely area to check | Next step |
|---|---|---|
| Viewport and full-page images clip at the same edge | Page width, configured viewport, or a wide child. | Compare document client/scroll widths and inspect elements extending past the intended edge. |
| Only the full-page image differs | Full-page geometry or viewport-relative CSS. | Compare dimensions and computed layout before and after capture; reproduce on the installed versions. |
| Document appears complete but a panel is cut off | Nested overflow: auto or overflow: scroll region. |
Capture or scroll the inner container explicitly rather than relying on document-level fullPage. |
| Capture changes layout or fails on a very tall page | Large output or version-specific browser behavior. | Check Puppeteer and Chrome versions, test a smaller or targeted capture, and avoid treating old issue limits as current. |
Or skip the browser setup
If you need screenshots through an API instead of debugging Puppeteer, ScreenshotNeo takes a screenshot from one GET request. Cookie banners are accepted and removed along with known consent platforms, newsletter popups, and chat widgets before the shot; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers say which page verdict and billing result applied. Its MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.
For other supported options, see the ScreenshotNeo documentation. One-call example:
Recommended Free Tools
curl -G "https://api.screenshotneo.com/v1/shot"
-d access_key=YOUR_API_KEY
--data-urlencode url=https://stripe.com
-o shot.webp
Sign up for 1,000 free screenshots a month, with no card required.
Frequently Asked Questions
Which Puppeteer and Chrome versions are affected by the horizontal clipping I see?
The available details do not establish a version-specific cause for your page. Record both installed versions and reproduce the issue with the same viewport, page state, and screenshot options.
Does `fullPage: true` capture every scrollable panel on a page?
No. A nested scrolling element has its own scrollable area, so a document-level full-page capture should not be relied on to traverse it.
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.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.

