Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk4 min

Fix Website Screenshots That Show a Loading Spinner Instead of the Page

A screenshot can catch a spinner after navigation but before useful content appears. Diagnose the timing and wait for a page-specific readiness signal.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If a website screenshot shows a loading spinner instead of the page, the capture likely started before the application displayed its useful content. Wait for a page-specific signal—such as the expected heading becoming visible or the spinner disappearing—then capture. A browser navigation event or an idle network does not always mean a modern page is ready.

Why a screenshot can catch a spinner

Navigation and finished content are different milestones. The browser can reach a navigation event while a client-rendered application is still fetching data, building a results list, or waiting on another operation. If the screenshot runs between those milestones, it records the loading state. Playwright documents navigation lifecycle conditions and recommends relying on web assertions to assess readiness rather than treating network idle as a general test-readiness signal: Playwright Page API.

As an Amazon Associate I earn from qualifying purchases.

Find out what is happening while the spinner remains

  1. Open the target page in Chrome and open DevTools.
  2. In the Network panel settings, enable screenshots, then reload the page.
  3. Inspect the captured frames and find one showing the spinner. Compare that frame’s time with the requests active in the Network timeline.
  4. Look for requests that are still active, stalled, or failed, and compare their timing with the visible page state. This can help identify whether the page is waiting on network activity or whether the application has not rendered its content yet.

Chrome documents this workflow for correlating visual frames during loading with network activity: Chrome Network tutorial and Chrome Network reference. The timeline helps diagnose a capture; it does not, by itself, identify the cause on a particular site.

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

Choose a wait condition that matches the page

Use the earliest signal that reliably means the content you want is present. The right condition depends on how the target page works.

#1 Best Overall
Wait signal What it observes When it can help What to watch for
Navigation milestone A browser navigation lifecycle event, such as domcontentloaded or load. A page whose useful content is rendered as part of normal document navigation. A client-rendered or data-driven page may still show a spinner after navigation.
Page-specific assertion An expected piece of content or UI state, such as a visible heading, populated results, or a disappeared loading element. Client-rendered pages and pages whose readiness can be expressed as a visible, meaningful state. Choose a selector that represents useful content, not just the document shell. Confirm the assertion targets the correct page or frame.
Network idle A period with no active network connections. Playwright describes its network-idle condition as no network connections for at least 500 ms. When the target’s network behavior makes quiet a useful proxy for readiness. Background polling or persistent connections can prevent idle; a quiet network does not prove the desired content appeared. Playwright discourages using it as a general test-readiness signal.

These conditions measure different things; none is a universal fix. See the Playwright Page API for its navigation conditions and readiness guidance.

Wait before taking the screenshot

Playwright

For a data-driven page, wait for a locator that represents the content you need, then capture. Replace the example URL and selector with values for your page:

import { chromium } from 'playwright';

const browser = await chromium.launch();
const page = await browser.newPage();

await page.goto('https://example.com/results', { waitUntil: 'domcontentloaded' });
await page.locator('h1').waitFor({ state: 'visible' });
await page.screenshot({ path: 'page.png', fullPage: true });

await browser.close();

If the heading is present before the content is ready, wait for a more precise signal—for example, a results container with at least one item, or for the known spinner to become hidden. Use a selector that actually distinguishes the loaded state on the target page.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Dell Latitude 5420 14" FHD Business Laptop Computer, Intel Quad-Core i5-1145G7, 16GB DDR4 RAM, 256GB SSD, Camera, HDMI, Windows 11 Pro (Renewed)
  • 256 GB SSD of storage.
  • Multitasking is easy with 16GB of RAM
  • Equipped with a blazing fast Core i5 2.00 GHz processor.

Puppeteer

Puppeteer’s screenshot guide demonstrates navigating and then taking a screenshot, using waitUntil: 'networkidle2' in its example. Its API also provides Page.waitForNetworkIdle(). For pages where quiet network activity is not a reliable readiness signal, use a page-specific condition instead. Puppeteer screenshot guide · Puppeteer network-idle API.

const browser = await puppeteer.launch();
const page = await browser.newPage();

await page.goto('https://example.com/results', { waitUntil: 'domcontentloaded' });
await page.waitForSelector('h1', { visible: true });
await page.screenshot({ path: 'page.png', fullPage: true });

await browser.close();

For a page where network quiet is known to be meaningful, Puppeteer supports this alternative:

await page.goto('https://example.com/results', { waitUntil: 'networkidle2' });
await page.screenshot({ path: 'page.png', fullPage: true });

If the spinner still appears

  • Check the request timeline. Identify requests that are active, stalled, or failed at the moment of capture; do not assume which request is responsible without inspecting the page.
  • Verify the readiness selector. A document shell or heading can appear before the useful content. Wait for the state you need, such as a populated list.
  • Check the page or frame. Confirm the automation is waiting on the same page or frame that will be captured.
  • Do not wait blindly for network idle. Persistent connections or polling can keep the condition from resolving, while network quiet alone may not show that content is ready.
  • Inspect the visible state at capture time. Compare the screenshot with the DevTools frames and active requests to determine whether the page is still loading or the wait condition is simply too broad.

The exact failing request or correct selector depends on the target site. An exact diagnosis requires the page URL, capture code, and a trace or comparable timeline.

Rank #3
15.6 Inch Win 11 Laptop Computer, N4020, 4GB DDR4 RAM, 128GB Storage | LPDDR4 RAM, 180° Lay-Flat, Dual-Band WiFi, Type-C PD Fast Charging, Thin & Lightweight for Students, Home & Office, Gray
  • WINDOWS 11 | STABLE PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 system, this laptop delivers stable performance for everyday computing tasks. It supports web browsing, online learning, document editing, email communication, and basic office work with optimized power efficiency, providing a practical and reliable experience for essential daily use for daily use.
  • 15.6” FHD IPS DISPLAY: Features a 15.6-inch Full HD IPS display with narrow bezels, offering wider viewing angles and clearer image details compared to standard panels. The improved screen-to-body ratio enhances visual experience for study, reading, document work, and video playback, making it suitable for both productivity and entertainment use.
  • 4GB DDR4 + 128GB eMMC STORAGE: Equipped with 4GB DDR4 memory and 128GB eMMC storage for everyday basics such as browsing, documents, email, and online learning platforms. The built-in TF card slot supports storage expansion up to 1TB, giving you more flexibility for files, photos, videos, and daily documents. TF card not included.
  • CONNECTIVITY & PORTS: Includes 1× TF card slot, 2× USB 3.2 Gen1 ports, and 2× full-featured Type-C ports (USB 3.2 Gen1). The Type-C ports support data transfer, charging, and video output, enabling flexible connection with external devices such as monitors, storage, and peripherals for daily work and study use.
  • LIGHTWEIGHT DESIGN | ONLINE COMMUNICATION: Designed with a slim, portable profile, this laptop is easy to carry for school, commuting, and travel. A built-in 1MP front camera supports online classes, video meetings, remote communication, and everyday conferencing. The 3300mAh battery works with the low-power system design to support practical daily use, while thermal optimization helps maintain quieter operation during extended tasks.
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. Its endpoint returns an image or PDF from one GET request; the response includes page-verdict and billing headers. Cookie banners, newsletter popups, and chat widgets are removed before capture by default, and each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed. Its MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf.

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.

Here is a cURL example using the documented endpoint and parameters; replace YOUR_API_KEY with your key. See the ScreenshotNeo documentation for options and response details.

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

The Free plan includes 1,000 screenshots per 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.

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.

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.