Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk6 min

How to Capture a Complete Screenshot of a React Page with Infinite Scrolling

Playwright’s fullPage option captures rendered document content, not future infinite-feed items. Scroll to load the target rows, wait for an explicit boundary, then capture and verify the image.

Free tools Windows power users keep installed

One-click scans. No signup required.

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

First make the feed load the content you mean to capture, then take the screenshot. In Playwright, fullPage: true captures the page’s current scrollable document as one tall image; it does not scroll through an infinite feed to trigger more requests or viewport-based rendering. Scroll the page or its feed container in controlled increments, wait for a page-specific signal that each batch loaded, stop at a defined boundary, and only then capture and verify the image.

What a full-page screenshot captures—and what it does not

Playwright’s fullPage screenshot option captures the full scrollable page in one image. It does not simulate scrolling the real viewport. As a result, it cannot by itself ensure that the page has requested further feed items or triggered content that depends on entering the viewport. This distinction matters for React pages using lazy loading, IntersectionObserver, scroll-triggered reveals, or virtualized lists. See the Playwright screenshot documentation and the Playwright issue discussing scroll-triggered content and full-page screenshots.

As an Amazon Associate I earn from qualifying purchases.

For a finite page whose target content is already in the document, the capture can be as simple as:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
await page.screenshot({ path: 'page.png', fullPage: true });

For an infinite feed, first decide what “complete” means. It might mean a known number of entries, a particular item ID, an explicit end-of-results marker, or all entries loaded within a defined time or test boundary. An endless feed has no natural final screenshot.

#1 Best Overall
Sale
Samsung T7 Portable SSD 1TB Titan Gray, USB 3.2 Gen 2, Up to 1,050MB/s | Reliable External Solid State Drive Storage for Gaming, Students, Professionals (MU-PC1T0T/AM)
  • MADE FOR THE MAKERS: Create; Explore; Store; The T7 Portable SSD delivers fast speeds and durable features to back up any endeavor; Build your video editing empire, file your photographs or back up your blogs all in an instant
  • SHARE IDEAS IN A FLASH: Don’t waste a second waiting and spend more time doing; The T7 is embedded with PCIe NVMe technology that brings fast read and write speeds up to 1,050/1,000 MB/s¹, making it almost twice as fast as the T5
  • ALWAYS MAKE THE SAVE: Compact design with massive capacity; With capacities up to 4TB, save exactly what you need to your drive – from large working files to game data and everything in between
  • ADAPTS TO EVERY NEED: Whether using a PC or mobile phone, count on the T7 for extensive compatibility²; It’s a true team player when it comes to heavy-duty application usage or file-saving
  • HI RESOLUTION VIDEO RECORDING: Record Ultra High Resolution (4K 60fs) videos directly onto the T7 Portable SSD with your favorite camera or mobile devices; Supports iPhone 15 Pro Res 4K at 60fps video and more³

Load the intended feed content before capturing

1. Wait for a meaningful starting condition

Navigate to the React route and wait for a page-specific condition, such as the feed container becoming visible or its first expected item appearing. Avoid treating network quiet as proof that the page is ready: Playwright marks networkidle as discouraged for general readiness and recommends checking application-specific conditions instead. See Playwright’s page API documentation.

2. Scroll the real page or the correct nested container

Move the visual viewport in controlled increments so viewport-based observers can run. After each move, wait for evidence of progress—for example, a higher item count, a newly expected item, or a loading indicator disappearing. If the feed scrolls inside an element rather than the document, scroll that element; moving window will not advance a separately scrollable feed.

Rank #2
Sandisk 2TB Extreme Portable SSD, Up to 1050MB/s, USB-C, USB 3.2 Gen 2, IP65 Water and Dust Resistance, Updated Firmware, External Solid State Drive, SDSSDE61-2T00-G25
  • Get NVMe solid state performance with up to 1050MB/s read and 1000MB/s write speeds in a portable, high-capacity drive(1) (Based on internal testing; performance may be lower depending on host device & other factors. 1MB=1,000,000 bytes.)
  • Up to 3-meter drop protection and IP65 water and dust resistance mean this tough drive can take a beating(3) (Previously rated for 2-meter drop protection and IP55 rating. Now qualified for the higher, stated specs.)
  • Use the handy carabiner loop to secure it to your belt loop or backpack for extra peace of mind.
  • Help keep private content private with the included password protection featuring 256‐bit AES hardware encryption.(3)
  • Easily manage files and automatically free up space with the SanDisk Memory Zone app.(5). Non-Operating Temperature -20°C to 85°C

3. Stop at an explicit boundary

Use a finite target such as a known item count or ID when possible. Otherwise, wait for the site’s end-of-feed marker or define a stable stopping rule that fits the task. Add a timeout or other bound: if the feed never reaches the target, the script should report that instead of running forever.

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

4. Capture and inspect

Once the intended items coexist in the rendered document, capture with fullPage: true. Inspect the image and assert that the last expected item or end marker is visible. A successful screenshot call means an image was produced; it does not establish that every intended feed item loaded.

Rank #3
SSK 128GB Portable SSD External Hard Drive Solid State Drive up to 550MB/s
  • Capacity Reminder: Display capacity of 128GB SSD often appears as around 116GB on Windows. MacOS typically shows full 128GB. This display capacity reduction of 7% to 10% from SSD actual capacity is from algorithms differences in which 1GB is interpreted as 1024MB on Windows and 1000MB on SSDs
  • 550MB/s: Instantly access to your files with blazing 6Gbps external ssd speed up to 550MB/s. LED Light indicates portable ssd instant activity (Actual speed depends on drive capacity, host device, OS and application)
  • Data Security: Master external solid state drives health with S.M.A.R.T. monitoring. TRIM technology ensures consistent write speeds and extends the longevity of the portable SSD
  • USB C+A : Both USB-C cable and USB-A adapter featuring rapid USB 3.2 Gen2, this USB SSD effortlessly bridges devices, enabling seamless cross-platform file transfers between computers, smartphones, tablets and Phones
  • Always Fast: No slowdowns during large file transfers. This external ssd remains steady 6Gbps by using high speed SLC caching (25%of the current available capacity is allocated for high speed cache)

Illustrative Playwright scrolling pattern

This example assumes the document itself scrolls, each feed item matches [data-testid="feed-item"], and the target count is known. Replace the selector and boundary with ones from the application. It is an illustrative pattern, not a universal loop; production tests should add a bounded timeout and, where available, wait for the app’s own loading or end-of-feed signal.

const expectedCount = 100;
const itemSelector = '[data-testid="feed-item"]';

while (await page.locator(itemSelector).count() < expectedCount) {
  const previousCount = await page.locator(itemSelector).count();

  await page.evaluate(() => {
    window.scrollTo(0, document.body.scrollHeight);
  });

  await page.waitForFunction(
    ({ selector, previous }) =>
      document.querySelectorAll(selector).length > previous,
    { selector: itemSelector, previous: previousCount },
    { timeout: 10000 }
  );
}

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

For an application with stable item IDs, checking for the final intended ID is usually stronger than relying on a count alone: counts can include duplicate or placeholder rows. If a timeout occurs, handle it as an incomplete capture and report which boundary was not reached rather than silently saving the partial page as complete.

Rank #4
Seagate 2TB Portable Hard Drive | USB 3.0 (STGX2000400) | Everyday HDD storage. Plug-and-play backup. Windows & macOS. Adobe CC trial included. 1-Year Warranty
  • Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
  • Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
  • To get set up, connect the portable hard drive to a computer for automatic recognition no software required
  • This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
  • The available storage capacity may vary.

Choose a capture method for the rendering model

Page behavior Suitable approach Important check
Finite document; all target content is already present One Playwright full-page screenshot Confirm the expected last item appears in the output.
Lazy-loaded or observer-triggered content Scroll through the target region, wait for each batch, then capture the full page Verify the page actually loaded the intended items before capture.
Virtualized list that replaces offscreen rows Configure the test to render all target rows, capture successive viewport segments, or use a data export if visual output is unnecessary A single document screenshot may include only the currently rendered window, not the entire logical list.
Very long page or unstable sticky elements Capture controlled viewport segments and stitch them when appropriate Check overlap, sticky headers, and layout changes in the stitched result.

The virtualized-list limitation is described in the Playwright issue; rendering every row or stitching segments are practical workarounds, not an automatic Playwright solution. For automation already built around Chrome’s DevTools Protocol, Chrome also exposes Page.captureScreenshot. The same completeness question still applies: the content must be loaded and represented in the capture.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. Its API can return a screenshot or PDF from one GET request; see the ScreenshotNeo site and API documentation.

Best Value
SSK Portable SSD 250GB External Solid State Hard Drive USB C Up to 1050MB/s
  • Capacity Display Variance: 250GB external ssd often appears as around 232GB on Windows. MacOS can show full 250 GB capacity. This is binary calculation difference and doesn’t affect SSD hard drive actual physical storage
  • 1050 MB/s Speed: Instantly access to your files with blazing-fast 10Gbps external SSD read up to 1050MB/s and write up to 1000MB/s. LED Light indicates USB SSD instant activity
  • Data Security: Solid state drives S.M.A.R.T. health diagnostics​ and adaptive TRIM optimizing data block management ensures consistent write speeds and extends the longevity of the portable SSD
  • USB-C & USB-A Cable: Both cables featuring rapid USB 3.2 Gen2, this USB SSD effortlessly bridges devices, enabling seamless cross-platform file transfers and backup between computers, smartphones, tablets and iPhone
  • Always Fast: No slowdowns for large file transfers. With SLC caching (25% of current available capacity allocated as high-speed cache), this external SSD delivers steady 10Gbps for transfers within the cache capacity
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Replace the example URL with your target URL and provide an API key. The request captures a page; it does not guarantee that an infinite React feed has loaded every intended item, so define and verify the target content when completeness matters. ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture, with each cleanup step configurable. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.

Sign up for 1,000 free screenshots a month, with no card required.

Troubleshoot missing or incomplete content

  • The screenshot ends before later feed items. fullPage did not trigger the feed’s loading behavior. Scroll the actual viewport or nested feed container, then wait for a new item or other app-specific signal before capturing.
  • Lazy images or iframes are blank. Scroll their region into view and wait for the relevant content to load before taking the full-page image.
  • The last visible row is not the final intended row. The stop condition may be too weak or the feed may still be loading. Wait for a known item ID, expected count, or explicit end marker; treat a timeout as an incomplete result.
  • Some rows disappear as new ones load. The page may virtualize its list. A single document image cannot show rows that are no longer in the DOM; use an all-rows test configuration, viewport segments, or a data export depending on whether visual fidelity is required.
  • The script waits indefinitely. The target may be unreachable, the selector may not match, or the feed may be truly unbounded. Add a timeout, validate the selector, and make the capture boundary finite.
  • The capture has awkward gaps or repeated headers. For segmented screenshots, account for overlap and sticky UI, then inspect the assembled image rather than assuming the segments align.

Reliability and cost considerations

Completeness depends on the page’s own loading behavior and on the capture boundary, not just the screenshot API call. A readiness assertion tied to the expected content is more meaningful than network quiet alone. For automated jobs, use bounded waits, preserve the failure state when a target is not reached, and check the final artifact for the last intended item. This avoids treating a valid image of a partially loaded feed as a successful complete capture.

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

Frequently Asked Questions

Can a full-page screenshot capture every item in an infinite feed?

Only if the intended items have loaded and are present in the rendered document when the capture is taken. An infinite feed also needs a defined stopping boundary.

Does Playwright’s full-page capture scroll the page to trigger React loading?

No. It captures the current full scrollable document; it does not itself move the visual viewport to trigger viewport-based loading.

Why can a virtualized React list be incomplete in one screenshot?

Virtualization can remove offscreen rows from the DOM as new rows appear, so the full logical list may never coexist in the document at once.

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.

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

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.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
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.