Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteiTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
To capture a long page without missing content, scroll through the page before calling page.screenshot({ fullPage: true }). Full-page mode captures the page’s dimensions; it does not by itself guarantee that content the site loads only when it comes into view has appeared. Scroll-driven loading, a page-specific readiness check, and a quick inspection of the final image are the dependable workflow.
Why a full-page screenshot can still miss content
Puppeteer’s fullPage option requests a capture of the full page rather than just the viewport. It does not promise to trigger every site’s lazy-loading behavior. Some pages fetch images or render sections only after scrolling them into view; others add content in response to a particular interaction or keep loading indefinitely.
A navigation wait such as networkidle2 is useful, but it measures network activity, not whether the application has finished rendering every deferred item. Puppeteer defines networkidle0 and networkidle2 as periods with no more than zero or two network connections, respectively, sustained for 500 ms. A quiet network can still leave content waiting for a scroll or application-specific condition.
Scroll, verify readiness, then capture
- Navigate to the page. Use a lifecycle wait appropriate to the site.
domcontentloadedis a practical starting point when you intend to trigger lazy loading yourself; network-idle waits may be useful afterward, but are not proof of completeness. - Scroll through the relevant content. Move the browser viewport down in increments so viewport-based loading can run. If the content is inside a nested scrolling container, scroll that container too; scrolling the document will not necessarily trigger it.
- Wait for evidence that matters. Prefer a selector for the final section, a loading indicator disappearing, an expected item count, or an end marker. Use a delay only as a fallback, not as the sole readiness test.
- Capture the full page. Set
fullPage: true; the option is false by default. - Inspect the result. Confirm that the final expected section and important images are present. If not, revise the scroll or readiness condition and capture again.
Runnable Puppeteer example
Install Puppeteer in a Node.js project with npm install puppeteer. Save this as screenshot.js, replace the URL, and run node screenshot.js. The loop scrolls the document in viewport-sized increments and makes several passes while the page height is still growing.
#1 Best Overall
- 100% LIFETIME PROTECTION: Enjoy reliable performance with lifetime coverage, guaranteeing your tripod is always protected against any defects or issues.
- Ultimate Materials & Engineerin: EUCOS's phone tripod utilizes modified Nylon PA6/6 for all-weather durability. The engineered polymer delivers exceptional crush/shear resistance and toughness, achieving optimal rigidity-flexibility balance.
- Rapid Extension Tripod for Phone: Glide the rod in a single, fluid motion to convert it from a compact tripod into a full 62" selfie stick. Achieve instant elevation for dynamic filming.
- Studio-Grade Phone Rig: Safely harness phones from 2.2" to 3.6" wide with pro-level clamping and effortless framing. Built-in cold shoe expands your creative options with lights and mics.
- Hands-Free Control: The Wireless remote enables instant pairing with smartphone and remote capture from up to 33ft/10m. Ensures rock-solid stability for blur-free photography and Start/Stop video recordings effortlessly—all without device contact.
const puppeteer = require('puppeteer');
async function main() {
const url = 'https://example.com/long-page';
const browser = await puppeteer.launch({ headless: true });
try {
const page = await browser.newPage();
await page.setViewport({ width: 1365, height: 900 });
await page.goto(url, { waitUntil: 'domcontentloaded' });
// Trigger viewport-based loading and allow the document to grow.
await page.evaluate(async () => {
const step = Math.max(300, Math.floor(window.innerHeight * 0.8));
let previousHeight = 0;
let stablePasses = 0;
const maxPasses = 10;
for (let pass = 0; pass < maxPasses && stablePasses < 2; pass++) {
const height = document.documentElement.scrollHeight;
for (let y = 0; y < height; y += step) {
window.scrollTo(0, y);
await new Promise(resolve => setTimeout(resolve, 150));
}
window.scrollTo(0, document.documentElement.scrollHeight);
await new Promise(resolve => setTimeout(resolve, 150));
const newHeight = document.documentElement.scrollHeight;
stablePasses = newHeight === previousHeight ? stablePasses + 1 : 0;
previousHeight = newHeight;
}
});
// Optional: replace this with a selector that represents completion
// for your target page, such as its final section or end marker.
// await page.waitForSelector('.page-end-marker', { timeout: 10000 });
// Network quiet is an additional signal, not proof that all content rendered.
await page.waitForNetworkIdle({ idleTime: 500, timeout: 5000 }).catch(() => {});
await page.screenshot({ path: 'page.png', fullPage: true });
console.log('Saved page.png');
} finally {
await browser.close();
}
}
main().catch(error => {
console.error(error);
process.exitCode = 1;
});
Make the readiness check specific to the page
Uncomment and adapt waitForSelector when a reliable completion element exists. A selector that merely appears near the top is not enough if the missing content is lower down. For a list, waiting for an expected count or a known final item is stronger evidence. If the page exposes no clear completion signal, use the scroll loop as a starting point and inspect the output rather than treating its delay or stable height as a universal guarantee.
Handle nested scrollers separately
Some sites place results in a panel with its own scrollbar. Find the relevant container and scroll it into view, then use browser-visible scrolling on that element—for example, Puppeteer locator scrolling—while checking that the expected items appear. Scrolling the document alone may never bring those items into view. A locator wait can also wait for a visible element or a function-based condition.
Rank #2
- 62" Phone Tripod & Selfie Stick Combo: Extendable phone tripod for iPhone and Android, combining a tripod stand and selfie stick in one lightweight design for selfies, photos, videos, vlogging, live streaming, and family gatherings.
- Adjustable Height & 360° Rotation: The tripod extends up to 62 inches to support standing shots, group photos, video calls, and content creation. The 360° rotating phone holder allows vertical or horizontal shooting.
- Stable Phone Holder for Daily Recording: Designed for hands-free video recording, online meetings, tutorials, livestreams, and social content. The phone holder keeps your device positioned securely for clear, steady shots.
- Wide Compatibility with Phones and Cameras: Fits most smartphones from 2.8" to 5.7" wide and includes a universal 1/4" screw mount for compatible cameras, action cameras, webcams, and camcorders.
- Wireless Remote & Complete Kit: Includes 1 phone tripod/selfie stick, 1 universal phone holder, 1 adapter, and 1 wireless remote shutter. Backed by 12-month after-sales support for everyday shooting needs.
Know when the page will not settle
Infinite-scroll pages may keep appending items as you approach the bottom. The example limits repeat passes so it does not loop forever, but that limit is not a completeness guarantee. Decide what “complete” means for your capture: a known item count, a particular last item, or a deliberate cutoff. Then stop when that condition is met.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallChoose the right capture method
- Full page: use
page.screenshot({ fullPage: true })when the output should include the whole document, after triggering the site’s deferred content. - One known element: use
ElementHandle.screenshot()when you need a specific element. Puppeteer scrolls that element into view if necessary, but that does not load every other offscreen item on the page. - One viewport: omit
fullPagewhen only the current visible area is needed.
Troubleshooting missing sections and images
| Symptom | Likely cause | What to try |
|---|---|---|
| Lower sections are absent | The page was captured before scroll-triggered rendering ran, or content is in a nested scroller. | Scroll the relevant area in increments; wait for a page-specific final-section or item-count condition. |
| Images are blank or missing | Image requests or rendering are deferred until the image approaches the viewport, or the page has not finished applying them. | Scroll across the image area, wait for the relevant image or loading state, and inspect the output. Network idle alone does not establish that all images rendered. |
| The script waits too long or times out on network idle | The page may maintain ongoing requests, such as polling or analytics. | Use a bounded network-idle timeout as an optional signal and rely on a page-specific readiness condition instead. |
| The scroll loop stops while items are still missing | The page uses a trigger other than document scrolling, or its content keeps loading beyond the loop’s passes. | Identify the actual scroll container or interaction, define a completion condition, and adjust the loop to the page’s behavior. |
| The screenshot is unexpectedly long or incomplete on an infinite feed | The page adds more content as it reaches the bottom, so “all content” may have no finite end. | Set an explicit stopping rule, such as a target item count or last item, before capturing. |
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server. Its full-page capture option loads lazy images, but site-specific behavior can still vary. A one-call capture looks like this; see the ScreenshotNeo documentation for API options.
Rank #3
- 【Sturdy and Stable】: Made of premium aluminum alloy and stainless steel, Liphisy phone tripod with remote keeps your device stay securely in place for still shots and video recording.
- 【Multi-angle Shot】: With a max height of 64”, this tripod stand with a 210-degree rotation head and 360-degree rotation holder allows you to capture shots from any angle, catering to different photography needs.
- 【Wireless Remote Included】: Package includes a wireless remote that connects to your cell phone easily, making it a breeze to snap photos or video recordings.
- 【Height Adjustable】: The height of this cell phone tripod with remote can be adjusted from 17” to 64” and the easy lock mechanism makes it really easy to set up. It gives you an excellent vantage point for capturing photos and videos.
- 【Wide Application】: Compatable with different phone and camera, this tripod is great for photography and video recording, perfect for travel and home use.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/long-page -o shot.webp
- It accepts cookie and consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off.
- Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed. Responses indicate the page verdict and billing status in headers.
- An MCP server provides
take_screenshot,get_page_info, andcapture_pdftools for Claude, Cursor, and other MCP clients. - The Free plan includes 1,000 screenshots per month with no card required; paid plans start at $5 for 3,000 screenshots.
Sign up free for 1,000 screenshots a month, with no card.
Quick Recap
Best Value
- Rotatable twist with 1/4"screw allows 360° adjustment and 180° flipping, so you can take photos, video call or live broadcast with ease
- Universal compatibility with smartphones up to 3.7 inches wide, GoPros, digital cameras and webcams
- Includes a wireless remote with a range of 30 feet (without obstacle), so you can easily take individual, group and wide-angle shots
- Swaps easily between handheld selfie stick and stand-alone tripod for dual-purpose use
- Whether you're an amateur, enthusiast or professional, this is a must-have accesory for shooting on the go
Rank #4
- [Versatile Design] RISEOFLE 71'' Phone Tripod and Selfie Stick combo is the perfect accessory for all your cell phone photography needs.The high-quality aluminum alloy telescopic pole allows you to extend effortlessly and smoothly, and turns into a tripod with just one pull. Its sturdy yet lightweight design provides stability and reliability, ensuring that your phone or camera stays safe during use. Ideal for Selfies/Live/Video Recording/Travel
- [Extra Tall 71" Adjustable Phone Tripod] This selfie stick tripod features a 7-section adjustable aluminum telescoping pole that adjusts from 12.2 in (31 cm) to 70.86 in (180 cm). Provides exceptional flexibility for shooting a variety of shots. Whether you're taking a selfie, a group photo or shooting a video, the adjustable height ensures you get the best angle every time.
- [Compact & Portable Design] The RISEOFLE phone tripod stand With a folded length of only 31cm (12.2 in) and a weight of 264g (0.58 lb), extremely portable and easy to store, it can be effortlessly placed into your backpack or carry-on luggage, making it the perfect companion for your travels. Wherever you go, it allows you to capture amazing footage with ease.
- [360° Rotation & Wide Compatibility] Featuring a 360° rotating phone holder, this selfie stick tripod allows you to easily switch between portrait and landscape modes for the best viewing angle. The universal holder fits smartphones with widths of 2.6''-3.6'' (4''-7'' screen size) and is compatible with most cameras, action cams, and webcams via the 1/4” screw mount (Note: the remote control function only applies to cell phones, the camera cannot use the remote control function).
- [Perfect for Content Creation] Ideal for selfies, vlogging, and social media content creation, the RISEOFLE Tripod comes with a wireless remote control for hassle-free shooting. Whether you're on Instagram, YouTube, TikTok, or Twitter, this phone stand for filming helps you capture professional-quality photos and videos with ease.
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.

