PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated 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 matchIf a Puppeteer screenshot shows a desktop layout, set the intended viewport—or emulate the target device—before navigating, then verify the page’s actual layout width and the screenshot’s capture options. page.viewport() confirms Puppeteer’s configured settings; it does not report the page’s actual viewport.
Set the mobile viewport before navigating
For a test that needs a particular CSS viewport size, call page.setViewport() before page.goto(). The dimensions below are an example, not a universal phone standard.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setViewport({
width: 390,
height: 844,
deviceScaleFactor: 1,
});
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
await page.screenshot({ path: 'mobile.png' });
await browser.close();
})();
Puppeteer advises setting the viewport before navigation because some sites do not expect phones to change size. Changing mobile or touch properties can reload the page in some cases. If the page has already loaded, set the desired configuration and revisit or reload it so the site can respond to the mobile conditions from startup. See Page.setViewport().
Choose dimensions or emulate a named device
| Approach | Use it when | What it configures | Watch for |
|---|---|---|---|
page.setViewport() |
You need a specific CSS viewport width and height. | Viewport dimensions and optional properties such as device scale factor. | It does not by itself set a mobile user agent. Set it before navigation for predictable mobile layout behavior. |
page.emulate(device) |
You want to approximate a named device profile. | The device’s user agent and viewport together. | Emulate before navigation. Available device definitions can change between Puppeteer releases. |
To emulate a known device, use Puppeteer’s KnownDevices definitions:
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 →#1 Best Overall
- YOUR CONTENT, SUPER SMOOTH: The ultra-clear 6.7" FHD+ Super AMOLED display of Galaxy A17 5G helps bring your content to life, whether you're scrolling through recipes or video chatting with loved ones.¹
- LIVE FAST. CHARGE FASTER: Focus more on the moment and less on your battery percentage with Galaxy A17 5G. Super Fast Charging powers up your battery so you can get back to life sooner.²
- MEMORIES MADE PICTURE PERFECT: Capture every angle in stunning clarity, from wide family photos to close-ups of friends, with the triple-lens camera on Galaxy A17 5G.
- NEED MORE STORAGE? WE HAVE YOU COVERED: With an improved 2TB of expandable storage, Galaxy A17 5G makes it easy to keep cherished photos, videos and important files readily accessible whenever you need them.³
- BUILT TO LAST: With an improved IP54 rating, Galaxy A17 5G is even more durable than before.⁴ It’s built to resist splashes and dust and comes with a stronger yet slimmer Gorilla Glass Victus front and Glass Fiber Reinforced Polymer back.
const puppeteer = require('puppeteer');
const { KnownDevices } = puppeteer;
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.emulate(KnownDevices['iPhone 17 Pro']);
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
await page.screenshot({ path: 'iphone.png' });
await browser.close();
})();
Choose setViewport() when dimensions are the requirement; choose emulate() when the test also needs the bundled user agent and device metrics. The device name shown is tied to Puppeteer’s definitions, which may change. See Page.emulate().
Check what Puppeteer configured and what the page received
After setting the viewport, log Puppeteer’s configured value and query the page for its layout width:
Rank #2
- Carrier: This phone is locked to Tracfone, which means this device can only be used on the Tracfone wireless network. Tracfone plan required, activating is easy, just 3 steps.
- DISPLAY: Immersive viewing on a 6.7-inch super-bright 120Hz display with powerful stereo speakers and Bass Boost for cinematic entertainment.
- CAMERA SYSTEM: Advanced 50MP Quad Pixel camera captures sharp, detailed photos and videos in any lighting condition
- PERFORMANCE: Lightning-fast 5G connectivity paired with a powerful processor and RAM Boost for smooth multitasking.
- BATTERY LIFE: Long-lasting 5000mAh battery with TurboPower charging technology delivers hours of power in minutes.
console.log('Puppeteer viewport:', page.viewport());
const measurements = await page.evaluate(() => ({
innerWidth: window.innerWidth,
documentWidth: document.documentElement.clientWidth,
userAgent: navigator.userAgent,
}));
console.log('Page measurements:', measurements);
page.viewport() reports settings supplied through setViewport() or the connection’s defaultViewport. It does not inspect the actual page viewport. Comparing it with window.innerWidth and document.documentElement.clientWidth helps distinguish a Puppeteer configuration mismatch from a page-level issue. See Page.viewport().
If those page measurements are mobile-sized but the design still looks desktop-oriented, inspect the site’s viewport meta tag, responsive CSS breakpoints, and scripts that may alter layout after navigation. The Puppeteer APIs explain their own configuration behavior; they cannot identify every application-specific cause.
Rank #3
- YOUR CONTENT, SUPER SMOOTH: The ultra-clear 6.7" FHD+ Super AMOLED display of Galaxy A17 5G helps bring your content to life, whether you're scrolling through recipes or video chatting with loved ones.¹
- LIVE FAST. CHARGE FASTER: Focus more on the moment and less on your battery percentage with Galaxy A17 5G. Super Fast Charging powers up your battery so you can get back to life sooner.²
- MEMORIES MADE PICTURE PERFECT: Capture every angle in stunning clarity, from wide family photos to close-ups of friends, with the triple-lens camera on Galaxy A17 5G.
- NEED MORE STORAGE? WE HAVE YOU COVERED: With an improved 2TB of expandable storage, Galaxy A17 5G makes it easy to keep cherished photos, videos and important files readily accessible whenever you need them.³
- BUILT TO LAST: With an improved IP54 rating, Galaxy A17 5G is even more durable than before.⁴ It’s built to resist splashes and dust and comes with a stronger yet slimmer Gorilla Glass Victus front and Glass Fiber Reinforced Polymer back.
Make sure the screenshot captures the region you expect
Viewport configuration and screenshot region are separate. Page.screenshot() captures the page, while options such as fullPage, clip, and captureBeyondViewport affect the captured area.
fullPage: truerequests a full-page screenshot; it changes capture height, not the CSS viewport width used for responsive layout.clipcaptures a specified rectangle. Check its coordinates and dimensions if the resulting image appears cropped or unlike the visible viewport.captureBeyondViewportcontrols whether capture may extend beyond the viewport. Its documented default isfalsewithout a clip andtruewhen a clip is supplied.
await page.screenshot({
path: 'mobile-full.png',
fullPage: true,
});
For a clipped capture, specify the rectangle deliberately:
Rank #4
- PRIVACY DISPLAY: Automatically hide your screen from those beside you. The built-in privacy display can be preset¹ to turn on when receiving notifications, typing passwords, or using specific apps
- TYPE IT IN. TRANSFORM IT FAST: Enhance any shot in seconds on your smartphone by using Photo Assist² with Galaxy AI.³ Add objects, restore details, or apply new styles by simply typing or tapping
- NIGHTS, CAPTURED CLEARLY: From gigs to city lights, record and capture moments after dark with clarity using Nightography so your photos and videos stay crisp and clear on your Samsung Galaxy
- MAKE IT. EDIT IT. SHARE IT: Turn everyday moments into something personal with creative tools built right into your mobile phone, whether it’s a special contact photo, custom wallpaper, an invitation or more⁴
- HELP THAT KEEPS UP: Stay in the moment while Now Nudge with Galaxy AI helps you respond faster and stay organized with smart suggestions⁵ that appear exactly when you need them on your phone
await page.screenshot({
path: 'mobile-clip.png',
clip: { x: 0, y: 0, width: 390, height: 844 },
});
See the ScreenshotOptions reference and Screenshots guide.
Account for connection and headless defaults
When using puppeteer.connect(), inspect the connection’s defaultViewport and any later call that may override it. Puppeteer documents the default as 800×600. A subsequent setViewport() call can set the page to the dimensions your test needs. See ConnectOptions.
Best Value
- Carrier: This phone is locked to Tracfone, which means this device can only be used on the Tracfone wireless network. Activating is easy, just 3 steps.
- ACTIVATION Promotion: Includes 1500 min, 1500 texts & 1500 MB Data + add more as you need it
- CAMERA SYSTEM: 50MP Quad Pixel camera. Capture sharper, more vibrant photos day or night with 4x the light sensitivity.
- PERFORMANCE: Blazing-fast Qualcomm performance. Get the speed you need for great entertainment with a Snapdragon 680 processor and 4GB of RAM.
- 64GB built-in storage. Get plenty of room for photos, movies, songs, and apps. Made for US
Do not conflate the page viewport with the browser’s available screen. Puppeteer’s screen-configuration guide describes a headless screen of 800×600 when neither --screen-info nor --window-size is used. Screen or window sizing and page viewport sizing are related, but distinct. For workflows that manipulate the browser window, consult Screen configuration and Window management; the latter shows Page.resize() and an example that removes the default viewport with page.setViewport(null).
Common failures and fixes
| Symptom | Likely check | Fix |
|---|---|---|
| The screenshot is desktop-sized or shows desktop breakpoints. | Was the viewport set after navigation, or not set at all? | Call setViewport() or emulate() before goto(), then navigate again. |
page.viewport() shows mobile dimensions, but the page still appears wrong. |
The accessor reports Puppeteer’s configured settings, not the page’s actual viewport. | Evaluate window.innerWidth and document.documentElement.clientWidth; then inspect responsive CSS, viewport metadata, and post-navigation scripts. |
| The dimensions are right but the site still behaves like desktop. | The test may have set dimensions without a mobile user agent or other device metrics. | Use page.emulate(KnownDevices[...]) when the test requires a device profile, or set the needed mobile properties explicitly before navigation. |
| The image has an unexpected size or is cropped. | Check fullPage, clip, and captureBeyondViewport. |
Remove or correct the clip, and select the capture mode that matches the intended output. |
| The setup works in one run but not after connecting to an existing browser. | Check ConnectOptions.defaultViewport and later viewport changes. |
Set the intended viewport on the page after connecting and before navigating. |
| Changing mobile settings causes a reload or changes page state. | Puppeteer notes that changing isMobile or hasTouch can reload the page in some cases. |
Apply mobile settings before navigation so the site initializes under the intended conditions. |
Or skip the browser setup
If your goal is a screenshot rather than browser automation, ScreenshotNeo provides a website screenshot API and MCP server. One GET request can return a PNG, JPEG, WebP, or PDF. For example, 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 request options. Before capture, it accepts cookie or consent banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and responses include X-Page-Verdict and X-Billed headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.
Sign up free for 1,000 screenshots a month, with no card required.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Frequently Asked Questions
Does a mobile viewport automatically make a page use a mobile user agent?
No. Setting width and height alone does not set a mobile user agent; use device emulation if the test needs one.
Does `networkidle2` guarantee a page is fully ready for a screenshot?
No. It is a wait condition used in Puppeteer’s example, not a guarantee that every site has finished rendering its application state.
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.

