DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
FREEDOM251

Freedom251 › Blog › Chromium

Puppeteer Full-Page Screenshot Missing the Bottom of a CSS Grid: How to Diagnose It

By Freedom251 Team · · 6 min read

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

If a Puppeteer full-page screenshot cuts off the bottom of a CSS Grid, first confirm that the screenshot is actually configured for a full-page capture, then compare the page’s measured height with the grid and final row bounds. The symptom alone does not establish that CSS Grid is at fault. Check overflow, clipping, viewport-sensitive styling, and rendering timing before changing the layout; the exact cause depends on the page and the Puppeteer/Chromium versions.

Confirm that Puppeteer is capturing the full page

Puppeteer’s current ScreenshotOptions API reference, version 25.12.0, says fullPage defaults to false. Set it explicitly when the goal is a document-wide screenshot:

As an Amazon Associate I earn from qualifying purchases.

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

The API describes fullPage: true as taking a screenshot of the full page. The separate captureBeyondViewport option is also documented, but toggling it should not be treated as a general repair for document-height or CSS layout problems. Check the exact screenshot options used in your application against the Puppeteer ScreenshotOptions API.

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

Measure the page, grid, and last row before changing CSS

Determine whether the bottom row is outside the page’s measured document extent or whether it is inside that extent but absent from the image. The following diagnostic records the document heights, grid bounds, and final row bounds. Replace .grid and .grid-row:last-child with selectors matching your page.

#1 Best Overall
Sale
SAMSUNG 34" ViewFinity S50GC Series Ultra-WQHD Monitor, 100Hz, 5ms, HDR10, AMD FreeSync, Eye Care, Borderless Design, PIP, PBP, LS34C502GANXZA, 2023, Black
  • DO MORE ON ONE SCREEN: See every detail on the wider display featuring a 21:9 aspect ratio; Ultra WQHD provides the simplest way to maximize screen real estate and experience truly seamless multitasking on just one screen.Brightness (Typical) : 300 cd/㎡. Static Contrast Ratio 3000:1.
  • ENJOY A BILLION COLORS W/ INCREDIBLE DEPTH: With HDR10 that displays over 1 billion colors compared to 16.7 million for typical SDR technology, dark colors are darker and the brightest are even brighter; Content is experienced as the creator intended
  • CARE FOR YOUR EYES DAY and NIGHT: An ambient light sensor on the monitor detects lighting in your workstation and automatically adjusts brightness; Eye Saver Mode minimizes excessive blue light, and Flicker Free relieves eye strain
  • SEE CONTENT SMOOTHER, EVEN GAMING: A faster than average refresh rate updates the image on screen more often every second; 100Hz refresh rate reduces lag and motion blur when playing games, watching videos, or working on design projects
  • STAY IN SYNC WITH THE ACTION: AMD Radeon FreeSync keeps the refresh rate of your monitor and graphics card in sync to reduce image tearing for a superfluid entertainment experience; Watch movies and play games without interruptions
const measurements = await page.evaluate(() => {
  const grid = document.querySelector('.grid');
  const lastRow = document.querySelector('.grid-row:last-child');

  const rect = (element) => {
    if (!element) return null;
    const r = element.getBoundingClientRect();
    return {
      top: r.top + window.scrollY,
      bottom: r.bottom + window.scrollY,
      width: r.width,
      height: r.height,
    };
  };

  return {
    documentElementScrollHeight: document.documentElement.scrollHeight,
    bodyScrollHeight: document.body.scrollHeight,
    grid: rect(grid),
    lastRow: rect(lastRow),
    devicePixelRatio: window.devicePixelRatio,
  };
});

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

getBoundingClientRect() reports viewport-relative coordinates, so the example adds window.scrollY to express the top and bottom relative to the document. Compare the final row’s bottom with both scroll heights. Then compare the expected CSS-pixel extent with the image’s pixel dimensions, accounting for the device scale factor. This is a diagnostic method, not a confirmed fix for a specific CSS Grid bug.

  • The last row extends beyond the document height: investigate layout, clipping, nested scrolling, or content that has not yet been rendered.
  • The document height includes the last row, but the image omits it: verify the capture options and reproduce the case with the exact Puppeteer and Chromium versions in use.
  • The measurements change between runs: wait for the application’s actual render/data-ready state and measure again before capturing.

Inspect the grid and its ancestors for clipping or viewport-dependent layout

Walk from the grid container up through its ancestors, checking computed styles and the layout rules that constrain its height. These are investigation leads, not proven causes of this particular symptom.

Rank #2
Sale
Dell 34 Monitor S3425DW, WQHD VA, 120Hz, FreeSync Premium, Eye Comfort
  • Improved ComfortView Plus: Reduces harmful blue light emissions to ≤35%, for all-day comfort without sacrificing color accuracy.
  • Refresh rate: A smooth, tear-free experience with AMD FreeSync Premium (refresh rate up to 120Hz) and an ultra-low 0.03ms response time create a captivating experience for work and play.
  • Vivid colors: Enjoy vibrant, true-to-life colors with 99% sRGB and 95% DCI-P3 coverage. The VA panel with 3000:1 contrast ratio and HDR readiness delivers stunning depth, detail and realism.
  • Re-engineered sound quality: Enjoy more detailed sound with spacious audio featuring greater output power, deeper frequency response and more decibel range than the previous generation.
  • Easy connectivity: Keep your desk organized and clutter-free with a single USB-C cable (up to 65W power delivery).
  • Fixed heights, max-height, and containers that do not grow with their contents.
  • overflow: hidden or other overflow rules that clip descendants.
  • Nested scrolling regions where the grid’s content belongs to an element with its own scroll area.
  • Absolutely or fixed-positioned rows that do not contribute to normal document flow.
  • Viewport-relative units such as vh, which can produce different layout behavior when the viewport changes.

Puppeteer issue reports document viewport-sensitive screenshot behavior and overflow/rendering edge cases, but they do not establish that any one of these properties causes every missing-bottom screenshot. See the historical reports on viewport-relative sizing and overflow and screenshot behavior for context.

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

Wait for the page state that makes the grid complete

Capture only after the application has put the grid’s data and rows into the DOM. The Puppeteer screenshot guide demonstrates navigation using waitUntil: 'networkidle2', but network quiet does not guarantee that client-side rendering, data processing, or later updates have finished.

Rank #3
Sceptre 34-inch Curved ultrawide WQHD Monitor (3440 × 1440), R1500, up to 180Hz/165Hz, DisplayPort x2, 99% sRGB, 1ms, Built-in Speakers, Machine Black, 2025 (C345B-QUT168)
  • 1ms MPRT: Colors fade and illuminate instantly with a 1ms response time, eliminating ghosting and piecing together precise imagery during action-packed scenes and gaming.
  • Luminous Backcover Lights: A colorful LED light illuminates the back cover of the monitor, delivering a uniquely modern design.
  • WQHD Resolution: At 5 million pixels, Wide Quad HD Resolution (3440 x 1440) display resolution provides you with the next level of refined, and detailed picture over the current 1080P standard.
  • 21:9 Ultrawide: See more and do more with an ultrawide monitor. 21:9 provides you with 30% more screen space versus the conventional monitor. With an ultrawide resolution of 3440 x 1440, expand your performance and productivity.
await page.goto('https://example.com/grid', { waitUntil: 'networkidle2' });
await page.waitForSelector('.grid-row:last-child');
// If the application exposes a stronger ready condition, wait for it here.
await page.screenshot({ path: 'page.png', fullPage: true });

Choose a selector or application-specific ready signal that means the needed content is present; merely waiting for a fixed delay can be unreliable. Puppeteer’s screenshot guide documents screenshot usage and navigation examples.

Use an element screenshot only when its limits fit the case

Puppeteer also provides ElementHandle.screenshot(), which attempts to scroll a hidden element into view before capturing it. It can be useful when the target is one particular grid, but it is not a guaranteed way to capture an arbitrarily tall element. An older issue report describes clipping when an element exceeds the viewport, so verify the output dimensions and bottom edge for your exact case.

Rank #4
Alienware 34 Curved Gaming Monitor – AW3425DWM - 34-inch WQHD 180Hz 1ms Display, 1500R, AMD FreeSync Premium, VESA AdaptiveSync.
  • Bring virtual worlds to life with WQHD quality: Explore your games' vast, detailed landscapes with WQHD resolution and fluid, responsive visuals in an iconically designed ultrawide gaming monitor.
  • Dive into expansive details: Whether you’re exploring open worlds or completing challenges, you’ll never miss a detail thanks to WQHD resolution and a 34” ultrawide panel with a 1500R curve.
  • Fluid Performance: Get in the game with a smooth 180Hz refresh rate, 1ms gray to gray response time, AMD FreeSync Premium and VESA Adaptive Sync Technology.
  • Sharp visuals: Enjoy vibrant colors with DCI-P3 95% color coverage and VESA DisplayHDR 400 certification.
  • Game longer: Lock in for marathon gaming sessions with a dedicated console mode and hardware-based low blue light solution that reduces eye strain while preserving color.
const grid = await page.$('.grid');
if (!grid) throw new Error('Grid element not found');
await grid.screenshot({ path: 'grid.png' });

See the historical element screenshot clipping report; it is evidence of a reported edge case, not a guarantee about all current versions and configurations.

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

Test viewport changes cautiously

Increasing the viewport can be a useful experiment, but it can also change the page being captured. Viewport dimensions may activate different media queries, alter viewport-relative sizing, and trigger resize handlers. An issue author who reported this workaround also noted those possible effects. Treat a resized capture as a comparison, not as proof that the layout has been fixed. Record both the original and test viewport sizes.

Best Value
Sale
SANSUI 34-Inch Curved Gaming Monitor UWQHD 3440 x 1440P 200Hz Ultrawide | 34” Ultra Wide Gaming Computer Monitor-PBP, OD 1ms, HDR, 300nits, 130%sRGB, DCI-P3 97%,AI Crosshair,HDMI2.1x2,DP1.4
  • 34 inch Curved 1500R UWQHD(3440 x 1440) @ 200Hz Fast VA Ultrawide Gaming Monitor with AI built-in.
  • Performance: Up to 200Hz Refresh Rate | OD 1ms Response Time丨 FastVA | AI Blue light reduction | AI Crosshair | AI PQ | AdaptiveSync | Support VRR with HDMI2.1
  • Ergonomic Stand: Tilt / Kensington Lock: -5°~15°(+/-2°) / Yes丨VESA Compatible (100 x 100mm) | 178° Wide Viewing Angle | PBP, 21:9 Ultrawide
  • Input &Output: DP 1.4 (Up to 200)|HDMI2.1 X 2 (Up to 200)|Earphone |No speakers
  • Warranty: SANSUI 34-inch Curved gaming computer monitor support money-back and free replacement warranty from order date within 30 days and lifetime technical support.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Build a minimal reproduction and record versions

If the measurements do not locate the failure, reduce the page to the smallest example that still cuts off the bottom. Preserve the conditions that affect rendering and capture:

  • The grid CSS, including the relevant ancestors’ dimensions and overflow rules.
  • The content or data that creates the final row.
  • The viewport size and device scale factor.
  • The exact screenshot call and all options.
  • The Puppeteer version, Chromium version, and resulting image dimensions.

Historical Puppeteer issue discussions describe behavior changes associated with Chromium and Puppeteer versions. One discussion says that upstream Chromium changes affected viewport clipping as of Puppeteer v2.0.0; that is historical context, not a universal description of current behavior. Reproduce against the deployed version pair rather than applying an old workaround blindly. See the Puppeteer issue discussion.

Troubleshoot by symptom

What you observe What to check Next step
The screenshot stops at a viewport-like boundary Confirm fullPage: true; compare document height with the output dimensions. If the measured page includes the missing content, reproduce with the same Puppeteer/Chromium versions and options.
The last row is beyond both reported scroll heights Check fixed or maximum heights, overflow clipping, nested scrollers, positioning, and whether the row has rendered. Inspect the layout chain and capture after the application’s ready condition.
An element screenshot loses the lower part of a tall grid Check whether the target exceeds the viewport and whether the image dimensions match the expected extent. Test full-page capture as a separate path; do not assume element capture handles arbitrary height.
A larger viewport changes the result Compare media-query behavior, viewport units, and resize-dependent application code. Keep the viewport change as a controlled experiment and document the altered layout conditions.
The result differs between local and deployed runs Record the exact Puppeteer and Chromium versions, options, viewport, and content state in each environment. Reduce the page and compare like-for-like captures before changing CSS.

The available reports do not identify this exact CSS Grid case or prove a single root cause. If a minimal reproduction still fails after these checks, include the reproduction, version pair, measurements, and output dimensions when asking for help.

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

Or skip the browser setup

If you need a screenshot without configuring a Puppeteer browser, ScreenshotNeo accepts a URL in one GET request. Its capture flow accepts cookie/consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, with response headers indicating the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for AI agents and other MCP clients.

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

See the ScreenshotNeo API documentation for request options. One thousand screenshots per month are free with no card; paid plans start at $5 for 3,000 shots. Learn about ScreenshotNeo or sign up for 1,000 free screenshots a month, with no card required.

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.

ChromiumCSS GridPuppeteerscreenshotsWeb development

Leave a Reply

Your email address will not be published. Required fields are marked *

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

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.