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 glitchesPass a path option to page.screenshot(). Put the directory and filename together in that string:
await page.screenshot({ path: 'screenshots/homepage.png' });
Puppeteer resolves a relative path from the Node.js process’s current working directory. The filename extension is used to infer the screenshot format. Puppeteer’s screenshots guide shows the same path pattern.
Set the directory and filename with path
Here is a complete example using an already-open Puppeteer page:
await page.screenshot({ path: 'screenshots/homepage.png' });
The directory is not a separate option: include it and the filename in the same path string. Use an absolute path if you want to specify the destination independently of where the Node.js process was launched.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC 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 & 11#1 Best Overall
- Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
For a relative path such as screenshots/homepage.png, the base is the process’s current working directory—not an assumed project root. See the ScreenshotOptions API reference.
Choose the output format with the filename extension
Puppeteer infers the screenshot type from the path’s extension. Use a clear matching extension, such as .png or .jpeg. PNG is the documented default type. Consult the ScreenshotOptions documentation for the current option behavior.
Rank #2
- Easily store and access 5TB of content on the go with the Seagate portable drive, a USB external hard Drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Capture an element to a named file
An element screenshot accepts the same path option. For example:
const element = await page.waitForSelector('div');
await element.screenshot({ path: 'output/div.png' });
Puppeteer scrolls the element into view if needed. The call throws if the element handle has detached from the DOM before the screenshot is taken. See ElementHandle.screenshot().
Recommended Free Tools
Rank #3
- Easily store and access 1TB to content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop. Reformatting may be required for Mac
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Save the file or use the returned image data
When you supply path, Puppeteer writes the screenshot to that location. Without path, the method returns image data instead of writing a file: ordinarily a Uint8Array, or a string when base64 encoding is requested. See Page.screenshot().
This distinction is useful when another part of your application will upload, transform, or store the bytes itself. If you want Puppeteer to write a local image file, include path.
Rank #4
- Easily store and access 4TB of content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Troubleshoot path and capture problems
- The file is not where expected: A relative path is based on the Node.js process’s current working directory. Check where the process runs, or provide an absolute path.
- No file appears: Confirm that the options object includes
path. Without it, Puppeteer returns image data instead of saving to disk. - The file extension does not match the intended format: Puppeteer infers the type from the extension. Use an extension that matches the output format you want.
- An element screenshot throws: The element handle may have detached from the DOM. Find or wait for the element again before calling
screenshot().
The cited API references do not establish that Puppeteer creates missing destination directories automatically. Ensure the destination directory exists before capture rather than relying on implicit creation.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Or skip the browser setup
If you only need an image or PDF from a URL, ScreenshotNeo can capture it through one GET request, without setting up Puppeteer and a browser locally. Its clean-shot steps accept cookie or consent banners and remove 60+ known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. An MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents and other MCP clients.
Example cURL request (replace the URL with the page you want to capture):
Best Value
- [Upgraded Version] - This external hard drive features a mirrored logo stripe combined with a striped anti-slip design, and the rounded corners of the casing make it easier to grip. The stripes also have a heat dissipation function, ensuring stable and fast data transfer.
- 【Ultra-thin and quiet】 - The motherboard adopts JMicron 578 noise-free solution, giving you a quiet working environment. Lightweight and portable size designed to fit in your pocket for easy portability.
- 【Ultra-Fast Data Transfers】 - Pairing this external hard drive with JMicron 578 solution USB 3.0 and USB 2.0 interfaces enables blazing-fast data transfer. It boasts theoretical read speeds of up to 125MB/s and write speeds of up to 103MB/s.
- 【Plug and Play】 - With no software to install, just plug it in and the drive is ready to use.The hard disk chip is wrapped with an aluminum anti-interference layer to increase heat dissipation and protect data.
- 【What You Get】 - 1 x Portable Hard Drive, 1 x USB 3.0 Cable, 1 x User Manual, Gift-type shell packaging ,Three-year manufacturer's warranty and free technical support services.
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 setup and request options. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for free and get 1,000 screenshots a month with no 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.

