Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →A Puppeteer screenshot can show a broken or incomplete layout even after a networkidle wait because network quiet does not guarantee that the application has finished rendering the state you want to capture. Set the viewport before navigation, wait for a page-specific readiness condition, inspect the page and its resources, and only then call Page.screenshot().
Why a Puppeteer screenshot can be broken after network idle
A navigation wait such as networkidle2 observes network activity; it does not confirm that a single-page app has finished updating data, that a component is visible, or that a visual transition has ended. Puppeteer’s screenshot guide shows navigation with waitUntil: 'networkidle2' followed by capture, but the Page API also provides selector and function waits for more specific conditions. See the Puppeteer screenshot guide and Page API.
There is no single correct wait condition for every site. The reliable condition is one tied to the content or state your screenshot requires, such as a visible result element or an application readiness flag.
Set the viewport before navigating
Make the intended dimensions and device scale explicit before loading the URL. Responsive layout is determined in part by the viewport, so a screenshot taken at an unintended width can look broken while accurately reflecting a different layout. Puppeteer recommends setting the viewport before navigation; changing mobile or touch properties in some cases can trigger a reload. See Page API and Viewport API.
#1 Best Overall
- 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
await page.setViewport({
width: 1440,
height: 900,
deviceScaleFactor: 1
});
const response = await page.goto('https://example.com', {
waitUntil: 'networkidle2'
});
Use the width and height that match the layout you intend to reproduce. If you need mobile emulation, configure the appropriate viewport and device settings before navigation, rather than changing them after the page has loaded.
Wait for the page-specific ready condition
Once navigation completes, wait for an element or application state that means the desired content is actually ready. A visible selector works when its appearance reliably signals readiness:
Rank #2
- 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).
await page.waitForSelector('[data-testid="results"]', {
visible: true,
timeout: 15000
});
For a condition that is not represented by one selector, use page.waitForFunction() to test a meaningful state exposed in the page:
await page.waitForFunction(() => {
return window.appReady === true;
}, { timeout: 15000 });
Replace window.appReady with a condition your application actually exposes. Alternatively, wait for a specific content change that indicates the required data has appeared. The Page API documents selector waits and page-context evaluation.
Rank #3
- 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.
A fixed sleep can be useful as a short diagnostic, but it is not a dependable readiness test: a slower run may still be incomplete, while a faster run spends time waiting unnecessarily. Prefer a state you can assert.
Reproduce and diagnose the failure
- Record the capture setup. Note the Puppeteer and browser versions, URL, viewport, device settings, and whether the capture is full-page or limited to an element. This makes comparisons meaningful when the output changes.
- Check navigation outcome. Choose the navigation
waitUntilcondition deliberately, then inspect the returned response and page events or errors. A completed navigation does not prove that later application rendering succeeded. - Assert application readiness. After navigation, wait for the selector, readiness flag, or content change that corresponds to the intended screenshot.
- Inspect resources and DOM state. Check whether expected stylesheets, fonts, images, and data requests succeeded. Inspect relevant console or page errors, and verify that target elements have the expected computed styles and dimensions.
- Capture only after those checks. Use the page screenshot method for the whole page, or locate and capture the specific element.
Puppeteer exposes page events, request facilities, evaluation, and selector waits through the Page API. These checks help narrow the cause; they do not establish one universal cause for every broken screenshot.
Rank #4
- 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.
Match the symptom to the likely check
| What you see | What to check | Next step |
|---|---|---|
| Wrong responsive arrangement | Viewport width and height, device scale, and mobile or touch emulation | Set the intended viewport and device settings before navigation. |
| Missing or late content | Whether the app has populated the relevant content after navigation | Wait for a meaningful selector or application-level readiness condition. |
| Unstyled or partly styled page | Stylesheet requests and browser/page errors; whether needed requests were blocked | Check request handling and confirm required CSS resources load. |
| Images missing below the fold | Whether images are lazy-loaded and whether the relevant content was brought into view | Investigate loading behavior for that page; lazy loading is a possible diagnostic cause, not a general explanation for all missing images. |
| Wrong element or unexpected crop | Whether the selector matches the intended node, and its visibility and dimensions | Wait for the correct selector and verify the element before capturing it. |
Check request handling if styles or assets disappear
If request interception is enabled, make sure every intercepted request is continued, responded to, aborted intentionally, or completed from cache. Puppeteer’s API notes that intercepted requests stall until handled. A request left unresolved can prevent the page from loading resources the layout needs. Review the Page API when debugging interception.
Choose a page or element screenshot
Use Page.screenshot() when the capture should represent the page. If only one component matters, wait for its selector and use its element handle’s screenshot() method instead. Puppeteer documents both paths; an element screenshot attempts to scroll the element into view if it is hidden. See the screenshot guide.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows 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 reinstallBest Value
- 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 | Sniper Scope | Support VRR with HDMI2.1
- Ergonomic Stand: Tilt / Kensington Lock: -5°~15°(+/-2°) / Yes丨VESA Compatible (100 x 100mm) | 178° Wide Viewing Angle | PIP/PBP,21:9
- 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.
const element = await page.waitForSelector('[data-testid="results"]', {
visible: true
});
await element.screenshot({ path: 'results.png' });
For a full-page capture after your readiness checks, use:
await page.screenshot({ path: 'page.png', fullPage: true });
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Or skip the browser setup
ScreenshotNeo offers a one-request screenshot API. Its clean-shot processing accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and responses identify the page verdict and billing status in headers. It also provides an MCP server with take_screenshot, get_page_info, and capture_pdf tools for AI agents.
For example, save a screenshot of a URL with cURL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for setup and available parameters. One thousand screenshots per month are free without a card; paid plans start at $5 for 3,000. ScreenshotNeo is made by Yorker Media. Sign up for 1,000 free screenshots a month with no card.
Common troubleshooting mistakes
- Increasing the timeout without checking state: A longer wait does not fix a wrong viewport, failed stylesheet, or app condition that never becomes true. Inspect the page and wait for the actual readiness signal.
- Changing viewport settings after load: Some mobile or touch changes may reload the page. Set the desired configuration before navigation and then repeat the readiness wait.
- Assuming network idle means visually complete: Network quiet and application readiness are different conditions. Assert the latter for the content you need.
- Leaving intercepted requests unhandled: Ensure interception code resolves every request instead of allowing needed page resources to stall.
- Capturing an element before confirming the match: Verify that the selector resolves to the intended visible element and that its dimensions make sense before calling its screenshot method.
Version note
The Puppeteer screenshot guide identifies its documentation version as 25.12.0. The Page API documentation is from the project’s main branch, so check the API behavior against the Puppeteer version installed in your project.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Frequently Asked Questions
Does networkidle2 guarantee that a single-page app has finished rendering?
No. It is a navigation wait based on network activity, not an application-level guarantee that the desired content or visual state is ready.
Should I use a fixed delay after network idle?
Use a page-specific selector or application condition when possible. A fixed delay is only a diagnostic aid and does not adapt to different render times.
Quick Recap
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.

