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

Scroll through the page to trigger offscreen lazy-loaded images, wait for the images you need to finish loading successfully, and only then capture the screenshot. A full-page screenshot or a “network idle” navigation wait alone does not guarantee that every image in the final capture has loaded.

Why lazy-loaded images are missing from screenshots

Lazy loading postpones image requests until images approach or enter the visible area. Browsers can apply this behavior to images with native lazy loading, while JavaScript-based page components may use viewport observation to decide when to load content. A screenshot that includes parts of the document that have never been scrolled into view can therefore contain missing images.

Browser guidance notes that the distance at which native lazy-loaded resources begin loading can vary with the resource and effective connection type. A fixed delay is consequently less dependable than triggering the relevant content and checking the result. Google’s Chrome team also advises that likely in-viewport images, especially LCP images, should not be lazy-loaded. web.dev’s browser-level image lazy-loading guidance explains these behaviors.

A reliable workflow

  1. Navigate to the page. Waiting for the initial document load is a starting point, not proof that deferred images have been requested.
  2. Scroll through the content in overlapping increments. Use steps smaller than the viewport height so viewport-triggered loaders have a chance to observe each region.
  3. Wait for the images that matter. For ordinary <img> elements, a useful condition is img.complete && img.naturalWidth > 0. This indicates that the image request completed and produced an image with nonzero intrinsic width.
  4. Capture after the readiness check. If the desired output is a top-of-page viewport image rather than a full-page image, restore the scroll position first.

Scrolling triggers loading; it does not guarantee loading succeeded. Exclude intentionally empty or decorative image elements from the check where appropriate. For CSS background images, custom components, or application-specific placeholders, use the page’s own readiness signal or inspect the rendered result instead of assuming document.images covers them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Amazon Basics 50-inch Lightweight Portable Camera Tripod Stand with Quick-Release Plate, Adjustable Height, Aluminum, for Travel Photography, Champagne
  • Camera mount tripod stand with zippered storage bag
  • Adjustable height from 16.1inch to 50inch with 3-section,lever-lock legs for simple adjustments
  • Folds down quickly and made of lightweight aluminum; It weighs only 1.23 lbs,lightweight and portable, easy to carry for travel,hiking,camping,etc
  • 3-way head allows for tilt and swivel motion;portrait or landscape options;Built in Bubble Level,fast and accurate positioning
  • Quick-release plate helps ensure fast transitions between shots

Playwright example: scroll, verify, then capture

This JavaScript example uses Playwright’s page object. It scrolls in overlapping increments, rechecks document height as it goes, waits up to 30 seconds for ordinary image elements to complete successfully, reports remaining failures, returns to the top, and saves a full-page PNG.

const url = 'https://example.com';
await page.goto(url, { waitUntil: 'domcontentloaded' });

await page.evaluate(async () => {
  const step = Math.max(200, Math.floor(window.innerHeight * 0.8));
  const deadline = Date.now() + 30_000;
  let y = 0;
  let previousHeight = 0;
  let stableHeightPasses = 0;

  while (Date.now() < deadline) {
    const height = document.documentElement.scrollHeight;
    if (y >= height) {
      if (height === previousHeight) stableHeightPasses++;
      else stableHeightPasses = 0;
      if (stableHeightPasses >= 2) break;
      previousHeight = height;
    }

    window.scrollTo(0, Math.min(y, Math.max(0, height - 1)));
    await new Promise(resolve => setTimeout(resolve, 100));
    y += step;
  }

  window.scrollTo(0, 0);
});

await page.waitForFunction(() =>
  [...document.images].every(img => img.complete && img.naturalWidth > 0),
  { timeout: 30_000 }
);

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

The height recheck helps with pages that append content during scrolling, but a truly infinite-scroll page needs a deliberate stopping rule, such as a maximum scroll duration or a known end marker. The strict image predicate also treats failed requests and intentionally empty images as not ready; tailor the predicate to the images that belong in your capture. A production script can collect and report the URLs of images still incomplete when its timeout expires rather than silently proceeding.

Rank #2
XXZU 75" Camera Tripod,Aluminum Tripod for Camera Phone/Monopod with Remote
  • 75in Extendable Camera Tripod: This tripod for camera phone can extend to a height of 75 inches by adjusting the flip locks, which can be quickly adjusted to any desired height to meet the needs of various shooting scenarios. Both the ball head and center column are equipped with level for easy real-time level calibration, ensuring perfectly level shots.Good Digital Camera Accessory Kits for you.
  • 3-in-1 Detachable Center Column: The center column supports quick detachment, allowing for flexible use as a monopod or selfie stick (Max Height:43.9 in / 111.5 cm). Camera phone tripod stand can also be installed upside down for low-angle macro shooting. This 3-in-1 multi-functional design simplifies shooting equipment, saves carrying space, and enhances practicality and cost-effectiveness, making it suitable for travelers, outdoor enthusiasts, and content creators.
  • 3-Level Angle Adjustment For Various Terrains: The camera tripod legs can be adjusted to three angles using the angle adjustment locks, allowing it to spread almost horizontally to achieve a minimum height of 15.35in(39cm) for low-angle shooting. Each leg adjusts independently in both angle and length, ensuring the tripod stand steadily on stairs, rocky trails, or uneven ground—making it ideal for outdoor-photographers and hikers shooting in unpredictable environments.
  • Remote Control & Flexible Ball Head: Equipped with a 360° ball head, which supports free rotation in both horizontal and vertical directions. When shooting vlogs or live streams, you can flexibly switch angles and landscape/portrait modes without moving the tripod. In addition, this phone tripod has a built-in remote control with a maximum 10m control distance. Whether it's selfies, group photos, or long-distance shooting, one-button control makes shooting easier and more convenient.
  • Sturdy & Stability: Constructed from aluminum alloy, this DSLR camera tripod features thickened tubes and anti-slip rubber feet that provide stronger grip on various surfaces, effectively preventing image shake. Its bottom hook allows for hanging weights, increasing counterweight and further enhancing overall stability, ensuring smooth footage even outdoors.[Max load 8kg/17.64lb (vertical) or 3kg/6.61lb(45° tilt)]

What Puppeteer and Playwright waits do—and do not—establish

Puppeteer’s screenshot guide shows navigation with waitUntil: 'networkidle2' before taking a screenshot, and documents that an element screenshot attempts to scroll a hidden element into view. These are useful capabilities, but network quiet does not prove that every deferred image was triggered or loaded successfully. Add a page-wide scroll and image-readiness check when image coverage matters. Puppeteer’s screenshot guide describes its screenshot behavior.

Playwright supports full-page screenshots and scrolling controls, and its automatic actionability checks help establish that a target element is visible, stable, and actionable before many interactions. Those checks are not a promise that all lazy images on the page have loaded. Puppeteer locator interactions similarly offer scrolling and visibility or stability waits, which are useful for a specific target but do not replace page-wide image verification. See Playwright’s Page API, Playwright’s auto-waiting documentation, and Puppeteer’s page-interactions guide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
K&F Concept 64 inch/163cm Lightweight Aluminum Travel Camera Tripod
  • 【Lightweight and Portable】4 section leg can adjust tripod height from 20.4''/52cm to 64.1''/163cm; it can be folded to 15.5''/39.5cm to make it easy to put it in the carrying bag; the net weight with the ball head included is only 2.53lbs/1.15 KG.
  • 【360 Degree Ball Head】36mm ball head can be rotated to any angle you want, helping to improve the range of camera activity during panning. It can withstand up to 17.6lbs/8kg.The 360-degree panning dial lets you set up precision shots to capture the beauty of landscapes.
  • 【Efficient and Flexible】With powerful and quick flip leg lock, only use one hand can open and close all the buttons in a few seconds. It's very easy to use, saving you more time and can more focused on enjoying the shooting.
  • 【Versatile Ability】The center column inverted installation (also with a short center column) to achieve the lowest angling shooting, archery and special photography.
  • 【More Compatibility】This camera tripod with standard 1/4'' thread,which can be applied to most Arca-Swiss quick release plates; 1/4" screw is suitable for most cameras, DSLR camera, projector and telescope, etc.

Troubleshooting missing images

  • Images are still absent after a network-idle wait: Network quiet is not the same as image readiness. Scroll through the page and check the relevant image elements explicitly.
  • The readiness check times out: Inspect which images failed the condition. A broken request, an intentionally empty src, or a placeholder can keep a strict check from passing; exclude elements that should not count, or report failures and decide whether to capture anyway.
  • Images appear only after scrolling manually: The page likely relies on viewport-triggered loading. Make the automation scroll each relevant region into or near view before checking image completion.
  • New sections appear as you scroll: The document height is dynamic. Recheck height during the pass and define a maximum duration or explicit end condition for infinite feeds.
  • A background image is missing: document.images only covers image elements, not CSS backgrounds. Wait for an application-specific ready state or verify the rendered content another way.
  • The top viewport is captured at the wrong scroll position: Return to window.scrollTo(0, 0) before a viewport screenshot. Full-page screenshot behavior can vary with the browser and framework, so verify the specific capture mode you use.

Or skip the browser setup

With ScreenshotNeo, request a screenshot in one GET call. Its full-page capture loads lazy images. See the ScreenshotNeo API documentation for request options.

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

ScreenshotNeo accepts cookie or consent banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; those steps can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and each response identifies the page verdict and billing status in headers. 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.

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

Rank #4
VICTIV 74” Camera Tripod, Tripod for Camera and Phone with Phone Holder
  • 【74 Inch Tall Tripod and Compact Tripod】 This tall camera tripod has a height adjustment range of 19-74 inches. It can meet the needs of daily work. This compact tripod comes with a carrying bag for outdoor and indoor shooting. This compact tripod weighs 3.14 lbs / 1.4 kg and is easy to store and stow
  • 【Tripod for All Camera and Phone】Standard 1/4" screw mount compatible with all cameras ( Canon, Nikon, Fujifilm, Olympus, Panasonic), DSLR, SLR, and digital cinema cameras, also spotting scopes, projector, compact camcorders, binoculars. The 360° phone mount is compatible with iPhone 17 16 15 14 13 12 11 Pro/XS/XR/MAX/8/8 Plus/X/7 Plus/7/6s Plus/6s/6 Plus/6/Samsung Galaxy S22/ S21 Series/ Galaxy Z Flip/ NOTE/ One Plus 1+Series
  • 【Professional 3-Way Pan Head】VICTIV Professional camera tripod stand is equipped with a stable and smooth 3-way pan head, it allows 360° horizontal panoramic shots, 180° up and down shots, and 90° vertical portraits. Non-slip pads provide great grip. You can also hang a backpack on the weight hook for extra stability
  • 【Video Tripod for Photography】The video camera tripod is suitable for outdoor and indoor shooting. It can meet the daily shooting needs of video producers, video bloggers, and youtube users. Camera tripods for Photography, food shooting, live streaming, scenery shooting, and portrait shooting, etc
  • 【Complete Tripod Units】What You Get: 1X Tripod for cell phone and camera, 1X Universal Phone Holder, 1X Extra Quick Release Plate,1X 3-way Pan Head, 1X Handle, 3X Non-slip pads. Please contact us anytime if any questions
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Frequently Asked Questions

Does a full-page screenshot automatically load every lazy image?

No. Full-page capture can include offscreen regions without triggering every page’s lazy-loading behavior. Scroll through the relevant content and verify the images before capturing.

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

Does waiting for network idle guarantee all images are ready?

No. Network idle indicates a period of network quiet, not that every deferred image was requested or loaded successfully.

Best Value
Sale
CAMBOFOTO 74″ Camera Tripod, Phone Tripod for iPhone Lightweight Tripod
  • Adjustable 20″–74″ Height: Easily extend from tabletop to full height for portraits, vlogs, outdoor photography, travel shots, and events — perfect for photographers and content creators of all levels.
  • Heavy Duty & Stable: Durable aluminum legs support up to 8.8 lbs, so it can take DSLRs, mirrorless cameras, ring lights, GoPros, and smartphones securely without wobble.
  • Multi-Device Compatibility: Includes quick release plate & phone mount — switch effortlessly between camera and phone setups for photos, live streams, podcasts or video calls.
  • 360° Pan & Tilt Head: Smooth, fluid head movement lets you capture wide panoramas, dynamic video clips, and precise compositions without stiff dragging.
  • Travel Ready & Lightweight: Weighing only 2.8 lbs and folding compactly for storage, this tripod is built for backpacks, road trips, hikes, and everyday use. Includes carry bag for convenience.

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.