To take a screenshot with Puppeteer on macOS, install a supported Node.js version, add the puppeteer package, let its install script download the bundled Chrome for Testing browser, then launch Puppeteer and call page.screenshot(). Puppeteer’s current requirements list Node.js 22.12 or later and support for macOS on both x64 and arm64. Its installation guide estimates the macOS browser download at about 170 MB. Puppeteer installation guide · System requirements.
Install Puppeteer and its bundled browser
-
Install Node.js 22.12 or later, as listed in Puppeteer’s current system requirements. Check your installed version with
node --version. -
From your project directory, create a package manifest if you do not already have one, then install Puppeteer:
npm init -y npm install puppeteerYou can also install it with
yarn add puppeteer,pnpm add puppeteer, orbun add puppeteer.The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.#1 Best Overall
HP Chromebook 14 Laptop, Intel Celeron N4120, 4 GB RAM, 64 GB eMMC, 14" HD Display, Chrome OS, Thin Design, 4K Graphics, Long Battery Life, Ash Gray Keyboard (14a-na0226nr, 2022, Mineral Silver)- FOR HOME, WORK, & SCHOOL – With an Intel processor, 14-inch display, custom-tuned stereo speakers, and long battery life, this Chromebook laptop lets you knock out any assignment or binge-watch your favorite shows..Voltage:5.0 volts
- HD DISPLAY, PORTABLE DESIGN – See every bit of detail on this micro-edge, anti-glare, 14-inch HD (1366 x 768) display (1); easily take this thin and lightweight laptop PC from room to room, on trips, or in a backpack.
- ALL-DAY PERFORMANCE – Reliably tackle all your assignments at once with the quad-core, Intel Celeron N4120—the perfect processor for performance, power consumption, and value (2).
- 4K READY – Smoothly stream 4K content and play your favorite next-gen games with Intel UHD Graphics 600 (3) (4).
- MEMORY AND STORAGE – Enjoy a boost to your system’s performance with 4 GB of RAM while saving more of your favorite memories with 64 GB of reliable flash-based eMMC storage (5).
-
Allow the package’s install script to run. The full
puppeteerpackage downloads a compatible Chrome for Testing build and achrome-headless-shell. The browser files are stored under$HOME/.cache/puppeteerby default. The macOS Chrome download is approximately 170 MB according to Puppeteer’s installation guide; the estimate can vary by release.
Puppeteer requires unzip to unpack the Chrome archive unless its optional yauzl dependency is installed. See the requirements and installation pages for current version-specific details.
Capture a screenshot with JavaScript
Save this as screenshot.mjs in the project. It opens a browser, creates a page, sets its viewport, loads the target URL, saves a PNG, and closes the browser even if navigation or capture fails.
import puppeteer from 'puppeteer';
const url = process.argv[2] ?? 'https://example.com';
const browser = await puppeteer.launch();
try {
const page = await browser.newPage();
await page.setViewport({ width: 1080, height: 1024 });
await page.goto(url, { waitUntil: 'networkidle2' });
await page.screenshot({ path: 'screenshot.png' });
} finally {
await browser.close();
}
Run it with node screenshot.mjs https://example.com. The default output is screenshot.png in the current directory. The launch, page, and viewport sequence follows the getting started guide; screenshot output is documented in the Page.screenshot() API reference.
The example waits for networkidle2, which can be unsuitable for pages that keep network connections open or continually load content. If navigation does not finish, try the default navigation wait or domcontentloaded, then add a targeted page.waitForSelector() for the content that must appear before capture. Confirm option support against the Puppeteer version installed in your project.
Rank #2
- Intel Processor Up to 2.80GHz, 4GB DDR4, 128GB Storage
- 15" FHD IPS Display, Intel UHD Graphics
- 1x USB Type C, 1 x USB Type A, 1x Headphone/Microphone Combo Jack, HDMI
- Fast WiFi and Bluetooth, Integrated Webcam
- Chrome OS, AC Charger Included, Pastel Silver
Choose bundled Chrome or a separately managed browser
| Approach | What it does | Trade-off |
|---|---|---|
puppeteer with bundled Chrome |
Downloads Chrome for Testing and the headless shell during installation. | The simplest setup and the browser configuration for which Puppeteer guarantees compatibility. |
puppeteer-core with a browser you manage |
Does not download Chrome. Supply an executable path or use a supported browser installation channel. | Gives you control over browser location and version, but you are responsible for compatibility. |
puppeteer with a system Chrome channel |
The full package can be configured to launch a supported locally installed Chrome release channel. | A separately updated browser may differ from the bundled version Puppeteer tests and guarantees. |
For the managed-browser option, install the core package with npm install puppeteer-core and provide the local browser’s actual executable path in launch(), or configure a supported browser channel. Do not copy a path from another Mac: installation location depends on the user’s setup. Consult LaunchOptions for launch configuration and Puppeteer configuration for executable path, cache directory, default browser, and download settings.
Fix common installation and capture failures
“Could not find Chrome (ver. …)”
The package may have installed without its browser because a package manager blocked dependency install scripts. From the project directory, run the official recovery command:
npx puppeteer browsers install
Alternatively, allow Puppeteer’s install script in your package manager and reinstall. The exact setting differs by package manager and configuration; do not enable scripts indiscriminately for untrusted dependencies. See the installation guide.
Chrome download or extraction fails
-
Check that the machine can reach the download host and has enough free disk space for the browser archive and extracted files.
-
Confirm that
unzipis available, or install the optionalyauzldependency used for extraction.Rank #3
SaleLenovo Chromebook m 14" - Everyday Laptop - Google Gemini - MediaTek Kompanio 540 CPU - 14" WUXGA IPS Display - 8GB RAM - 64GB UFS Storage - Integrated Arm Mali-G57 MC2 GPU - Cosmic Blue- YOUR DAY SIMPLIFIED – Enjoy crisp calls, vibrant views, and real connection. The Lenovo Chromebook m 14” laptop features a stunning WUXGA 16:10 screen, a full set of ports, and a lightweight yet tough, military-grade build.
- BRILLIANTLY IMMERSIVE – The vibrant WUXGA 1920x1200 display lets you see, hear, and create your world in thrilling new ways. Audio that's tuned with MaxxAudio delivers rich, balanced sound that pulls you deeper into every scene, playlist, and project.
- TOUGH, LIGHT, READY FOR LIFE – Carry with confidence. At just under 3lbs, the Chromebook m 14” laptop is easy to handle and reinforced with military-grade durability to withstand daily bumps, drops, and spills.
- LOOK SHARP STAY SECURE – Take charge of your privacy with the webcam’s physical privacy shutter. Open it confidently for video calls or livestreams and close it securely when you’re done, hassle-free.
- CONNECT MORE TO DO MORE – Switch between devices and displays effortlessly while collaborating, studying, and sharing your screen. The built-in USB-C, USB-A, and HDMI ports let you charge, connect and present dongle-free.
-
Check the configured browser cache. Puppeteer defaults to
$HOME/.cache/puppeteer; if you changed its cache directory, make sure the same configuration is available when launching.
The browser will not launch
Use the browser Puppeteer downloaded first, and check that the Node.js and macOS architecture meet the published requirements. If you set an executable path or channel, verify it points to an installed compatible browser. Puppeteer guarantees compatibility with its bundled browser; a different executable may work, but is used at your own risk. See system requirements and launch options.
The screenshot is blank, incomplete, or missing images
-
Wait for the relevant content instead of assuming navigation completion means every asynchronous component has rendered. Use a selector wait for a known element.
-
For pages that load images as they approach the viewport, scroll through the page before capture or configure a full-page screenshot as appropriate; check the installed version’s screenshot options.
-
Check whether the page requires authentication, consent, or client-side interactions. A screenshot records what the browser rendered under the current session and settings.
Rank #4
Acer Chromebook Plus 514 Laptop, 14" Touchscreen, Intel i3-N355, 8GB/512GB- THIN & DURABLE DESIGN - Boasting a thin and light design, the Acer Chromebook Plus 514 is designed to keep you productive and entertained from anywhere. It weighs only 3.09 lbs and meets MIL-STD 810H military standards for reliable performance in harsh conditions. With long battery life and fast charge technology, it lets you work, study, watch, and stay connected without interruptions. It is perfect for commuting, travel, or working on the go
- AI-POWERED CREATIVITY - The laptop has AI-powered Google and Adobe tools to turn inspiration into reality faster. Its Gemini AI simplifies organizing creative drafts and optimizing materials. The dedicated Quick Insert key creates high-resolution images and offers writing assistance for seamless creativity. Unlock Google AI Pro for 12 months with this Chromebook Plus purchase. Experience Gemini Advanced, NotebookLM, 5TB of cloud storage, and boost productivity with Gemini integrated into Gmail, Docs, and more
- POWERFUL PERFORMANCE - Powered by the 8-Core Intel Core i3-N355 Processor with Intel Graphics, it ensures smooth performance for everyday tasks. It features 8GB LPDDR5X RAM for fast, efficient multitasking and 512GB SSD, offering ample space for files, apps, media, and more, delivering fast storage access and reduced load times
- EXCELLENT VISUAL - Featuring a 14" WUXGA (1920x1200) IPS touchscreen with 300-nit brightness, this device delivers vibrant visuals and responsive touch functionality. It supports expanding the workspace with 3 external monitors via HDMI (max 4K@30Hz) or USB Type-C (max 4K@60Hz), without a docking station. Plus, a 1080p webcam with a privacy shutter to prevent unauthorized viewing meets daily video chat or conference needs
- RICH CONNECTIVITY OPTIONS - Equipped with 2x USB-C 3.2 Gen 1, 2x USB-A 3.2 Gen 1, HDMI 1.4, and a headphone/microphone combo jack. It features Wi-Fi 6E and Bluetooth 5.3 for blazing-fast wireless speeds and seamless device pairing, plus a white backlit keyboard that lets you work comfortably in any lighting
Performance, reliability, and cost considerations
-
The first installation has a substantial browser download—about 170 MB for the macOS Chrome for Testing download estimate stated in Puppeteer’s current guide—whereas subsequent project runs can use the cached browser.
Recommended Free Tools
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
Keep browser cleanup in a
finallyblock so failed navigations do not leave Chrome processes running. For repeated captures in a single script, reuse one browser process and create or close pages as needed rather than starting a new browser for every URL. -
Set navigation timeouts deliberately for slow sites and avoid waiting for a network-idle condition on pages with persistent requests. Waiting for a required element is often more reliable than waiting for every network request to stop.
-
Installing the bundled browser uses local disk space and requires a browser download. A user-managed browser avoids that bundled download but adds version and path maintenance.
Or skip the browser setup
ScreenshotNeo takes a screenshot through one GET request; see the ScreenshotNeo API documentation. For example, this cURL command saves a WebP screenshot of Stripe:
Free tools Windows power users keep installed
One-click scans. No signup required.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each cleanup step can be turned off. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. 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 without a card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan to try it without a card.
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.

