To take a website screenshot with Puppeteer on Windows, install Node.js 22.12 or later, create a project, and run npm i puppeteer. The package normally downloads a compatible Chrome for Testing browser. Then run a short JavaScript script to open the page and save its screenshot. The documented setup targets Windows x64; Puppeteer’s installation guide does not specify a separate India-only procedure.
What you need on Windows
- A Windows x64 computer. Puppeteer’s system-requirements guide lists Windows x64 and Node.js 22.12 or later. Check the live guide because version requirements can change.
- Node.js and npm. Confirm they are available in PowerShell or Command Prompt with
node --versionandnpm --version. - Internet access for npm packages and the browser download, unless you have separately arranged a browser installation. The official documentation does not establish India-specific download speeds, availability conditions, or network restrictions.
Puppeteer is a JavaScript library that controls Chrome or Firefox and runs headless (without a visible browser window) by default, according to the Puppeteer getting-started documentation.
As an Amazon Associate I earn from qualifying purchases.
Install Puppeteer and its browser
- Open PowerShell or Command Prompt and create a project folder, then enter it:
mkdir puppeteer-screenshot
cd puppeteer-screenshot - Initialize a Node.js project:
npm init -y - Install the full Puppeteer package:
npm i puppeteer - Wait for npm to finish. By default, the package install downloads a compatible Chrome for Testing build and a headless shell. Puppeteer’s installation guide gives an approximate Windows Chrome for Testing download size of 280 MB; that figure is undated in the live documentation and can change. The browser is stored in Puppeteer’s cache by default. Windows needs
tar.exeor PowerShell to unpack Chrome for Testing unless the optionalyauzldependency is installed. See the installation guide.
Use puppeteer for the straightforward install-and-run path. The alternative, puppeteer-core, does not download a browser; choose it when you manage the browser yourself or connect to a remote browser. Do not add both packages unless your project specifically needs them.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsCapture a website screenshot
In the project folder, create a file named screenshot.js with the following code. Replace the example URL with the page you want to capture:
#1 Best Overall
- 14" diagonal, 1366x768 resolution, HD BrightView LED, Glossy NON-TOUCH Display
const puppeteer = require('puppeteer');
async function main() {
const browser = await puppeteer.launch();
try {
const page = await browser.newPage();
await page.setViewport({ width: 1365, height: 900 });
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
await page.screenshot({ path: 'screenshot.png', fullPage: true });
} finally {
await browser.close();
}
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
Run it from the same folder with:
node screenshot.js
The script saves screenshot.png in the project directory. It sets a 1365-by-900 viewport and asks Puppeteer to capture the full page. networkidle2 waits for a period with at most two network connections; pages with continuous background requests may not reach that condition. If navigation hangs, try a less strict navigation wait such as domcontentloaded, then add an explicit wait for the page element you need.
The page.screenshot() API accepts further options, including image type and capture settings; consult the Page.screenshot() API reference for the current supported options. For a viewport-only image, remove fullPage: true. Always close the browser, including when navigation or capture throws an error; the finally block above does that.
Choose who manages Chrome
| Package | Browser setup | Use it when |
|---|---|---|
puppeteer |
Downloads a compatible Chrome for Testing build by default. | You want the documented local install-and-run setup. |
puppeteer-core |
Does not download a browser. | You manage Chrome/Chromium yourself or connect to a remote browser. |
With a user-managed browser, you can pass an explicit executable path to puppeteer.launch, for example puppeteer.launch({ executablePath: 'C:/path/to/chrome.exe' }). Use the actual path on your computer. The configuration guide documents executablePath; puppeteer-core ignores Puppeteer’s default configuration files and environment variables, so configure it explicitly.
Fix common installation and capture problems
Chrome is missing after npm install
Some modern package-manager settings block package installation scripts. If the Puppeteer package installed but its browser did not, run this from the project folder:
Rank #2
- 256 GB SSD of storage.
- Multitasking is easy with 16GB of RAM
- Equipped with a blazing fast Core i5 2.00 GHz processor.
npx puppeteer browsers install
Alternatively, adjust your package manager’s configuration to allow Puppeteer’s install script, then reinstall as appropriate. The manual browser installation command is documented in the installation guide.
Windows reports a sandbox permission error
Puppeteer v22.14.0 and later attempts to configure permissions during browser installation. If the problem remains, first check your installed Puppeteer version and follow the Windows troubleshooting guidance. For applicable cases it documents this command:
icacls "%USERPROFILE%/.cache/puppeteer/chrome" /grant *S-1-15-2-1:(OI)(CI)(RX)
Run it only when addressing the documented cache-permission case; do not treat it as a general fix for unrelated access errors.
The script cannot find your Chrome executable
Confirm the path points to the browser binary that is actually installed, then pass it using executablePath. A browser you manage yourself may differ from Puppeteer’s compatible default, so browser compatibility and updates become your responsibility. Puppeteer’s configuration guide explains the executable-path option.
Rank #3
- WINDOWS 11 | STABLE PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 system, this laptop delivers stable performance for everyday computing tasks. It supports web browsing, online learning, document editing, email communication, and basic office work with optimized power efficiency, providing a practical and reliable experience for essential daily use for daily use.
- 15.6” FHD IPS DISPLAY: Features a 15.6-inch Full HD IPS display with narrow bezels, offering wider viewing angles and clearer image details compared to standard panels. The improved screen-to-body ratio enhances visual experience for study, reading, document work, and video playback, making it suitable for both productivity and entertainment use.
- 4GB DDR4 + 128GB eMMC STORAGE: Equipped with 4GB DDR4 memory and 128GB eMMC storage for everyday basics such as browsing, documents, email, and online learning platforms. The built-in TF card slot supports storage expansion up to 1TB, giving you more flexibility for files, photos, videos, and daily documents. TF card not included.
- CONNECTIVITY & PORTS: Includes 1× TF card slot, 2× USB 3.2 Gen1 ports, and 2× full-featured Type-C ports (USB 3.2 Gen1). The Type-C ports support data transfer, charging, and video output, enabling flexible connection with external devices such as monitors, storage, and peripherals for daily work and study use.
- LIGHTWEIGHT DESIGN | ONLINE COMMUNICATION: Designed with a slim, portable profile, this laptop is easy to carry for school, commuting, and travel. A built-in 1MP front camera supports online classes, video meetings, remote communication, and everyday conferencing. The 3300mAh battery works with the low-power system design to support practical daily use, while thermal optimization helps maintain quieter operation during extended tasks.
Navigation waits indefinitely or the page is incomplete
Some websites keep network requests open, so a network-idle condition may not occur. Try waitUntil: 'domcontentloaded' and then wait for a specific selector, or use a bounded delay when the page needs time to render. If images or content load only as you scroll, use a full-page capture and verify the page has finished rendering before taking the screenshot.
Browser installation or download does not complete
Check the npm output for a blocked install script or an interrupted browser download, and confirm that Windows can unpack the archive using tar.exe or PowerShell. If the browser is absent rather than the package, use the documented browser-install command above. Puppeteer’s Chrome for Testing download guidance covers installing stable or a specified browser version; check its current CLI syntax before pinning a version.
Or skip the browser setup
For a one-request screenshot instead of managing Node.js and a local Chrome installation, use ScreenshotNeo. Its API returns a screenshot or PDF for a URL, and its consent-banner, popup, and chat-widget cleanup can be turned off when needed. See the ScreenshotNeo API documentation.
Recommended Free Tools
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Replace YOUR_API_KEY with your API key and the example URL with your target. Cookie banners, popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed. ScreenshotNeo also offers an MCP server so AI agents can take screenshots. The free plan includes 1,000 screenshots a month with no card, and paid plans start at $5 for 3,000. Sign up for free.
Frequently Asked Questions
Does Puppeteer require a visible Chrome window to take screenshots?
No. Puppeteer runs headless by default, so the browser can run without displaying a window.
Can I use Puppeteer with a Chrome installation I already have?
Yes. Use a browser you manage and provide its executable path with `puppeteer.launch`; with `puppeteer-core`, browser installation and configuration are your responsibility.
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.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.




