What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Use puppeteer-core and tell Puppeteer which existing Chrome to launch. Choose channel: 'chrome' when Chrome is installed in a location Puppeteer recognizes, or provide the browser’s executable file with executablePath when you need deterministic selection or discovery does not work. Unlike the full puppeteer package, puppeteer-core does not download a browser.
Choose the package before you launch
Puppeteer is published in two relevant forms:
puppeteernormally downloads a matching Chrome for Testing build during installation and is the simplest choice when you do not need to manage Chrome yourself.puppeteer-corecontains the automation library but no browser download. It is the right choice when Chrome is already installed, managed by your organization, supplied in a custom image, or selected by your deployment process.
When a package-manager install script has blocked the normal download, a full puppeteer installation can also be repaired by running npx puppeteer browsers install. That command installs Puppeteer’s managed browser; it does not configure an existing system Chrome.
Install puppeteer-core in your project
- Create or open a Node.js project and initialize it if necessary:
npm init -y. - Install the library:
npm install puppeteer-core. - Use an ES-module file such as
capture.mjs, or configure your project for ES modules.
Use a current Puppeteer release and record its version in your lockfile. Puppeteer works best with the Chrome for Testing version it was released with; external Chrome versions can work, but the project does not guarantee every pairing.
Option 1: let Puppeteer find regular Chrome with channel
The channel launch option asks Puppeteer to locate a regular Chrome installation in a known system location. This avoids hard-coding a path and is convenient on Macs that use a standard Chrome installation.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →#1 Best Overall
- SUPERCHARGED BY M5 — The 14-inch MacBook Pro with M5 brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. Featuring all-day battery life and a breathtaking Liquid Retina XDR display with up to 1600 nits peak brightness, it’s pro in every way.*
- HAPPILY EVER FASTER — Along with its faster CPU and unified memory, M5 features a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR APPLE INTELLIGENCE — Apple Intelligence is the personal intelligence system that helps you write, express yourself, and get things done effortlessly. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.
- APPS FLY WITH APPLE SILICON — All your favorites, including Microsoft 365 and Adobe Creative Cloud, run lightning fast in macOS.*
import puppeteer from 'puppeteer-core';
const browser = await puppeteer.launch({
channel: 'chrome',
headless: true
});
try {
const page = await browser.newPage();
await page.goto('https://example.com', {waitUntil: 'networkidle2'});
console.log(await page.title());
} finally {
await browser.close();
}
Run it with node capture.mjs. If Puppeteer cannot find Chrome through the channel, switch to an explicit executable path rather than guessing a different application directory.
Option 2: select Chrome with executablePath
executablePath must point to the browser executable inside the macOS application bundle, not merely to /Applications or a .app directory. The exact location depends on how Chrome was installed, which user installed it, and whether your organization relocated it.
Discover the executable on the Mac
Use Spotlight’s metadata search to locate Chrome application bundles:
mdfind "kMDItemCFBundleIdentifier == 'com.google.Chrome'"
For each returned application, append the executable path inside that bundle and verify it exists. A normal bundle uses a structure similar to Some Chrome.app/Contents/MacOS/Google Chrome, but do not assume the application name or parent directory is universal. Check the actual result:
Rank #2
- FAST RUNS IN THE FAMILY — The 16-inch MacBook Pro with the M5 Pro or M5 Max chip brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. With all-day battery life, double the starting storage,* and a breathtaking Liquid Retina XDR display, it’s pro in every way.*
- BUCKLE UP — Along with a next-generation CPU, faster unified memory, and up to 2x faster SSD storage,* M5 Pro and M5 Max feature a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance and on-device training capabilities. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR AI — Apple silicon, and every major component that powers it, is designed to run demanding on-device AI workloads like LLM inference and training. And Apple Intelligence helps you write, express yourself, and get things done effortlessly with groundbreaking privacy protections at every step.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.*
- MACOS RUNS APPS FAST — All your go-to apps run lightning fast in macOS, including built-in apps like FaceTime and Messages. Plus, built-in virus protection and free software updates help keep your Mac running smoothly and securely.
test -x "/actual/path/to/Chrome.app/Contents/MacOS/Google Chrome" && echo "executable found"
You can also inspect an application with Finder’s Show Package Contents, then open Contents/MacOS and identify the browser binary.
Launch the verified path
import puppeteer from 'puppeteer-core';
const chromePath = '/actual/path/to/Chrome.app/Contents/MacOS/Google Chrome';
const browser = await puppeteer.launch({
executablePath: chromePath,
headless: true
});
try {
const page = await browser.newPage();
await page.goto('https://example.com', {waitUntil: 'domcontentloaded'});
console.log(await page.title());
} finally {
await browser.close();
}
Replace the placeholder with the path you verified on the target Mac. Do not leave a placeholder path in production code.
channel or executablePath?
| Question | channel |
executablePath |
|---|---|---|
| Where Chrome is installed | Best when Chrome is in a location Puppeteer recognizes. | Works with nonstandard locations, provided the path is the executable. |
| Selection control | Convenient discovery; less explicit. | Deterministic selection of one known binary. |
| Maintenance | Follows the recognized installation location as it changes. | Requires updating configuration if the app moves. |
| Compatibility | Neither option removes version risk. Puppeteer guarantees its bundled browser, not every external Chrome release. | |
Use channel for a developer Mac with a conventional installation. Use executablePath in CI, managed desktops, custom images, or any project where selecting an exact binary matters.
Make the script reliable on macOS
Always close the browser
Put navigation and assertions in a try block and close the browser in finally. This prevents orphaned Chrome processes after a timeout or failed assertion.
Rank #3
- FAST RUNS IN THE FAMILY — The 16-inch MacBook Pro with the M5 Pro or M5 Max chip brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. With all-day battery life, double the starting storage,* and a breathtaking Liquid Retina XDR display, it’s pro in every way.*
- BUCKLE UP — Along with a next-generation CPU, faster unified memory, and up to 2x faster SSD storage,* M5 Pro and M5 Max feature a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance and on-device training capabilities. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR AI — Apple silicon, and every major component that powers it, is designed to run demanding on-device AI workloads like LLM inference and training. And Apple Intelligence helps you write, express yourself, and get things done effortlessly with groundbreaking privacy protections at every step.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.*
- MACOS RUNS APPS FAST — All your go-to apps run lightning fast in macOS, including built-in apps like FaceTime and Messages. Plus, built-in virus protection and free software updates help keep your Mac running smoothly and securely.
Wait for the page state you need
domcontentloaded waits for the document structure; networkidle2 waits until network activity is low. Neither guarantees that a JavaScript application has finished rendering. For dynamic pages, wait for a meaningful selector:
await page.goto('https://example.com', {waitUntil: 'domcontentloaded'});
await page.waitForSelector('main', {timeout: 15000});
Keep browser selection configurable
Do not embed a personal Mac path in shared code. Read an environment variable and fail with a useful message:
import puppeteer from 'puppeteer-core';
const launchOptions = process.env.CHROME_EXECUTABLE
? {executablePath: process.env.CHROME_EXECUTABLE, headless: true}
: {channel: 'chrome', headless: true};
const browser = await puppeteer.launch(launchOptions);
try {
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
} finally {
await browser.close();
}
Start an explicit-path run with CHROME_EXECUTABLE="/verified/path/Google Chrome" node capture.mjs. Keep the value out of source control.
Compatibility and version checks
A successful manual launch of Chrome does not prove that a particular Puppeteer release is supported. Puppeteer’s documented guarantee applies to its bundled Chrome for Testing browser. When you select ordinary Chrome, treat compatibility as a deployment variable.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #4
- SUPERCHARGED BY M5 — The 14-inch MacBook Pro with M5 brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. Featuring all-day battery life and a breathtaking Liquid Retina XDR display with up to 1600 nits peak brightness, it’s pro in every way.*
- HAPPILY EVER FASTER — Along with its faster CPU and unified memory, M5 features a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR APPLE INTELLIGENCE — Apple Intelligence is the personal intelligence system that helps you write, express yourself, and get things done effortlessly. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.
- APPS FLY WITH APPLE SILICON — All your favorites, including Microsoft 365 and Adobe Creative Cloud, run lightning fast in macOS.*
- Record the Puppeteer version from
npm ls puppeteer-core. - Record the Chrome version from
Google Chrome > About Google Chrome. - Test navigation, JavaScript execution, screenshots, downloads, and any permissions your application uses.
- Pin versions in CI when reproducibility matters, and retest after either Chrome or Puppeteer upgrades.
If you prefer Puppeteer’s managed browser instead, install the full package and run npx puppeteer browsers install after installation scripts have been disabled. That strategy removes the need for channel and executablePath, but it no longer uses your existing system Chrome.
Troubleshooting existing Chrome on macOS
“Cannot find Chrome” or a missing-browser error
- With
puppeteer-core, confirm that you supplied eitherchannelorexecutablePath. - For
channel, verify that Chrome is installed in a location Puppeteer recognizes. - For
executablePath, verify the complete executable path withtest -x; an application folder is not sufficient. - If you intended to use Puppeteer’s downloaded browser, install
puppeteerand runnpx puppeteer browsers install.
Chrome opens manually but Puppeteer fails
Check the exact Chrome and Puppeteer versions, then test with the other launch method. A nonstandard installation can defeat channel discovery; a moved or renamed application can invalidate an explicit path. External browser compatibility is not guaranteed.
The downloaded Chrome for Testing binary is blocked
This is a conditional fix for a Chrome for Testing application downloaded through a browser. From the directory containing that application, remove the quarantine attribute with:
xattr -cr 'Google Chrome for Testing.app'
Do not apply this as a universal remedy for ordinary Chrome launch failures.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesBest Value
- SUPERCHARGED BY M5 — The 14-inch MacBook Pro with M5 brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. Featuring all-day battery life and a breathtaking Liquid Retina XDR display with up to 1600 nits peak brightness, it’s pro in every way.*
- HAPPILY EVER FASTER — Along with its faster CPU and unified memory, M5 features a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR APPLE INTELLIGENCE — Apple Intelligence is the personal intelligence system that helps you write, express yourself, and get things done effortlessly. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.
- APPS FLY WITH APPLE SILICON — All your favorites, including Microsoft 365 and Adobe Creative Cloud, run lightning fast in macOS.*
You need more diagnostic detail
Capture the complete error, Puppeteer version, Chrome version, operating-system version, and whether you used channel or executablePath. Enable Puppeteer’s browser-output or debugging launch options while investigating, then disable verbose logging for normal runs. Avoid publishing cookies, authorization headers, or personal paths in logs.
Performance, security and operational notes
- Reuse when appropriate: launching Chrome is more expensive than opening a new page. For a batch job, keep one browser alive and create or close pages per URL.
- Set bounded timeouts: use navigation and selector timeouts so a stalled site cannot consume a worker indefinitely.
- Use an isolated profile: avoid automating a user’s everyday profile. A dedicated profile reduces interference from extensions, sessions and locked profile directories.
- Respect site controls: only automate pages and accounts you are authorized to access, and protect any credentials passed to the page.
- Plan for upgrades: test the Chrome/Puppeteer pair in a staging environment before updating managed Macs or CI images.
Or skip the browser setup
If your goal is simply a dependable website image or PDF, ScreenshotNeo provides a single HTTP request instead of maintaining a local Chrome installation. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups and chat widgets; each cleanup step can be disabled. Bot checks, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and billing result. It also offers an MCP server for Claude, Cursor and other MCP clients, with take_screenshot, get_page_info and capture_pdf tools.
Every plan includes the same feature set, including full-page captures with lazy images loaded, CSS-selector element capture, dark mode, device presets and custom viewports, retina scale, PDF paper and page controls, HTML/CSS rendering, custom JavaScript and CSS, clicks, selector or network-idle waits, request blocking, headers, cookies, user agents, authorization, timezone and geolocation, transparent backgrounds, resizing, chosen-TTL caching, signed image links, asynchronous webhooks, 100-URL bulk calls, usage reporting and an OpenAPI specification. Common screenshot-API parameter names are accepted to ease migration.
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 documentation for request options. The equivalent Python request is:
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 matchPC 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 & 11import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
require('fs').writeFileSync('shot.webp', Buffer.from(await res.arrayBuffer()));
The Free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots; yearly billing gives two months free. Create a free ScreenshotNeo account to try it without installing or maintaining Chrome.
Frequently Asked Questions
Can I use puppeteer instead of puppeteer-core with system Chrome?
Yes, but the full package is designed to use its downloaded Chrome for Testing. If you intentionally launch system Chrome, configure channel or executablePath and accept the external-version compatibility risk.
Does channel: 'chrome' work with Chrome Beta or Chromium?
The documented channel targets a regular Chrome installation in a recognized location. For another browser or a custom installation, use its verified executable with executablePath and test that browser version with your Puppeteer release.
Should I hard-code the usual Chrome path on every Mac?
No. Installation location can vary. Discover and verify the executable on each environment, then inject it through configuration such as CHROME_EXECUTABLE.
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.

