Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteTo let a Puppeteer-controlled browser save multiple downloads, create a browser context with downloadBehavior.policy set to allow and provide a writable downloadPath. Then trigger the downloads through the page. This permits the browser to save files; it does not give Puppeteer a supported download event, completion promise, or programmatic file-management API.
Allow multiple downloads to a directory
Set the download policy on the browser context before opening the page. The path must be an absolute path to a directory the process can write to. The current Puppeteer API documents downloadPath as required for both allow and allowAndName. Puppeteer BrowserContextOptions
const context = await browser.createBrowserContext({
downloadBehavior: {
policy: 'allow',
downloadPath: '/absolute/path/to/downloads',
},
});
const page = await context.newPage();
With allow, the browser can save repeated downloads initiated in that context to the chosen directory. You do not need a separate Puppeteer download permission for each file. This setting does not itself initiate downloads: the page still needs the appropriate click, form submission, or other site-specific action.
Complete example using repeated page actions
This example demonstrates the configuration and repeated clicks. Replace the URL and selector with the page and download control used by your application. The page interaction is site-specific; a selector that works on one site may not work on another.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →#1 Best Overall
- USB-C 2-in-1 storage OTG: The Lexar JumpDrive Dual Drive D40E features USB Type-A and Type-C connectors in a slim, portable form factor for easy device compatibility
- Transfer speeds up to 100MB/s: Based on internal testing, performance may vary depending upon the host device, interface, and usage conditions. 1MB=1,000,000 bytes
- Plug and Play: Widely compatible with USB Type-C smartphones, tablets, laptops, Macs, and traditional Type-A devices, no software installation required. The 360° swivel design allows for easy switching between connectors without the hassle of losing a cap
- Durable & Compact: The Lexar D40E USB memory stick features a metal enclosure, withstands temperatures from 0° to 50° C (32°F to 122°F), and is lightweight at 26g with dimensions of 70.4 x 16.9 x 11.7mm
- Security & Warranty: Securely protects files using an advanced security software solution with 256-bit AES encryption. Backed by a Lexar 3-year limited warranty
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch({ headless: true });
try {
const context = await browser.createBrowserContext({
downloadBehavior: {
policy: 'allow',
downloadPath: '/absolute/path/to/downloads',
},
});
const page = await context.newPage();
await page.goto('https://example.com/reports', {
waitUntil: 'domcontentloaded',
});
const downloadButtons = await page.$$('.download-report');
for (const button of downloadButtons) {
await button.click();
}
// This starts each click; it does not confirm that the files finished saving.
} finally {
await browser.close();
}
Use a real writable path for your operating system and execution environment. Create the directory before launch if it does not exist; this configuration selects a destination, but the documentation does not promise to create missing directories for you. Avoid using a temporary or shared directory if another process can remove, overwrite, or mix files there.
Choose the right download policy
The documented policy values are deny, allow, allowAndName, and default. Puppeteer DownloadBehavior For the common case—save several files under their downloaded filenames—use allow.
| Policy | Effect | When it fits |
|---|---|---|
allow |
Allows downloads; requires downloadPath. |
When the browser should save downloads in the selected directory. |
allowAndName |
Allows downloads and names downloaded files using their download GUIDs; requires downloadPath. |
Only when GUID-based filenames are acceptable for your workflow. |
deny |
Denies downloads. | When this context should not save files. |
default |
Uses the browser’s default behavior. | When you do not want to explicitly allow or deny downloads. |
Do not select allowAndName if later steps depend on the original filename: the documented behavior uses GUIDs instead. If your workflow needs the downloaded filename, the policy alone does not supply a Puppeteer API to report or manage it.
Rank #2
- High-speed USB 3.0 performance of up to 150MB/s(1) [(1) Write to drive up to 15x faster than standard USB 2.0 drives (4MB/s); varies by drive capacity. Up to 150MB/s read speed. USB 3.0 port required. Based on internal testing; performance may be lower depending on host device, usage conditions, and other factors; 1MB=1,000,000 bytes]
- Transfer a full-length movie in less than 30 seconds(2) [(2) Based on 1.2GB MPEG-4 video transfer with USB 3.0 host device. Results may vary based on host device, file attributes and other factors]
- Transfer to drive up to 15 times faster than standard USB 2.0 drives(1)
- Sleek, durable metal casing
- Easy-to-use password protection for your private files(3) [(3)Password protection uses 128-bit AES encryption and is supported by Windows 7, Windows 8, Windows 10, and Mac OS X v10.9 plus; Software download required for Mac, visit the SanDisk SecureAccess support page]
Permission is not download lifecycle handling
Allowing a download answers whether the browser may save it and where. It does not answer whether every file has finished, what its final filename is, whether it is valid, or whether an application should process it. Puppeteer’s Files guide states: “Currently, Puppeteer does not offer a way to handle file downloads in a programmatic way.” Puppeteer Files guide
That limitation matters when launching several downloads in quick succession. The click loop above issues actions; it is not a completion-aware queue. Do not treat the end of the loop, a fixed delay, or page navigation completion as proof that all files have finished writing. The cited Puppeteer documentation does not establish a download-completion event, progress report, or supported file-management interface.
If the next step depends on completed files
- First decide whether you only need the browser to save files, or whether the script must also verify and process them.
- If the script must verify files, plan for a separate, version-validated way to observe the destination directory or browser behavior. The available Puppeteer Files guide does not document that as a Puppeteer download-handling feature.
- Keep any supplemental filesystem or browser-protocol approach separate from the documented configuration above, and validate it against the installed Puppeteer release and browser.
- Where possible, make downstream processing safe to retry. A failed or interrupted run should not cause an incomplete file to be mistaken for a completed one.
The directory-setting code is useful even when lifecycle handling is supplied separately: it gives the browser a known destination. It should not be presented as a complete download manager.
Rank #3
- What You Get - 2 pack 64GB genuine USB 2.0 flash drives, 12-month warranty and lifetime friendly customer service
- Great for All Ages and Purposes – the thumb drives are suitable for storing digital data for school, business or daily usage. Apply to data storage of music, photos, movies and other files
- Easy to Use - Plug and play USB memory stick, no need to install any software. Support Windows 7 / 8 / 10 / Vista / XP / Unix / 2000 / ME / NT Linux and Mac OS, compatible with USB 2.0 and 1.1 ports
- Convenient Design - 360°metal swivel cap with matt surface and ring designed zip drive can protect USB connector, avoid to leave your fingerprint and easily attach to your key chain to avoid from losing and for easy carrying
- Brand Yourself - Brand the flash drive with your company's name and provide company's overview, policies, etc. to the newly joined employees or your customers
Version and browser compatibility
Puppeteer APIs and the browser versions paired with Puppeteer can change. The supported-browser guide says Puppeteer v20 onward downloads and works with Chrome for Testing, and that headless and headful modes share the same code path. Check the guide and the API reference for the release installed in your project before relying on a configuration in production. Puppeteer supported browsers
In particular, do not assume a code sample written for a different Puppeteer release or a separately managed browser has identical behavior. Confirm the installed package version, the browser it launches or connects to, and the availability of the documented context option. If you use connect() rather than launching a browser, check the current ConnectOptions reference for the corresponding option on your setup.
Common problems and practical fixes
No files appear in the destination
- Check that the page action actually triggers a download. The browser setting does not click the page’s controls or make a site expose a file.
- Confirm that the context was created with
policy: 'allow'and that the page belongs to that context. - Check that
downloadPathis absolute, exists, and is writable by the user running Node.js. - Verify that the site did not require a sign-in, another interaction, or a completed request before offering the file.
The directory is empty when the script continues
The documented API does not provide a supported Puppeteer completion signal for downloads. Reaching the next line after a click does not establish that the browser finished writing. If your workflow requires confirmation, add a separately validated observation strategy rather than treating the click or a fixed sleep as proof.
Rank #4
- GOOD VALUE PACKAGE - 1 Pack 32GB Memory Stick USB 2.0 Flash Drives with great cost performance and high quality.
- BIG CAPACITY - The available capacity: 29.10GB-29.8GB, You can save the data of movies, music, photos, designs, programs, manuals, handouts in a high speed.Good performance in digital data storing, transferring and sharing with families, friends, workmates, clients and machines.
- EASY TO USE & PLUG AND WORK - Support windows 7 / 8 / 10 / Vista / XP / 2000 / ME / NT Linux and Mac OS, Compatible with USB2.0 and below.
- TWISTTURN DESIGN & EASY CARRY - The metal clip rotates 360° round the ABS plastic body which with rubber oil skin feeling finish. The capless design can avoid lossing of cap, and providing efficient protection to the USB port.
- WARRANTY & SUPPORT - SIMMAX logo is laser printed on the USB connector surface, our products are of good quality and we promise that any problem about the product within one year since you buy.
Files have unexpected names
Check the selected policy. allowAndName uses download GUIDs as filenames. Use allow when preserving normal browser naming behavior is important to your workflow.
The option appears unsupported or behavior differs
Compare the code with the API documentation for your installed Puppeteer version and supported browser pairing. Puppeteer v20 onward uses Chrome for Testing according to its compatibility guide; an independently selected browser may not match the documented pairing.
Some downloads start, but others do not
Inspect the site’s own interaction requirements and the exact elements being clicked. The browser policy permits downloads but does not guarantee that every action produces a file. Also distinguish a missing download from one that has started but is not yet finished; Puppeteer does not document a programmatic download lifecycle API in its Files guide.
Free tools Windows power users keep installed
One-click scans. No signup required.
Best Value
- 【16GB Flash Drive】USB flash drives with 16GB capacity, meet your needs of daily use on work, school, home and travelling for photos, music, videos, files storage and transfer. IMEASON thumb drives can be used to store different files, easy to data backup.
- 【Metal Swivel Cap Design】USB thumb drive is metal swivel cover provides extra protection for the usb thumbdrive connector, no usb drive cap to lose; keychain design makes it easier to carry without worrying lose it.
- 【Wide Compatibility】USB drive supports Windows 7/8/10/11 / Vista / XP / Unix / 2000 / ME / NT Linux and Mac OS, also Supports USB 2.0 and 1.1 ports. USB Stick support TV, desktop, notebook computer, car, audio and other device. The USB Memory Stick is your great data storage and transfer companion with traveling and working.
- 【Easy to use】usb memory stick is plug and play without any software installation. Just simply plug the Flashdrive into the port of your USB-compatible devices such as computer, laptop to start data storage or transmission.
- 【What You Get】16 GB USB Flash Drive Thumb Drive, The default format of the usb storage flash drive is FAT32.
Performance, reliability, and cost considerations
Download behavior itself is a permission and destination setting, not a throughput control. The cited documentation does not establish a recommended concurrency limit, a completion queue, or download performance guarantees. A page that fires many actions at once may place load on the target site and make it harder for an external observer to associate files with actions. If order and verification matter, design those requirements explicitly rather than assuming that a sequence of clicks provides them.
For repeatable runs, use a dedicated output directory and define how your application will distinguish files from the current run from leftovers. Decide what should happen when a name already exists, when a file is partial, or when the process stops mid-run. These are application-level safeguards; they are not promised by downloadBehavior. Puppeteer download usage has no per-download price in the cited documentation, but the infrastructure running the browser and any storage or bandwidth your environment uses may have its own costs.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server, not a file-download manager. It is relevant if your actual task is capturing a webpage as an image or PDF rather than saving files offered by that page. One GET request can return a screenshot or PDF; its clean-shot options remove cookie/consent banners, newsletter popups, and chat widgets before capture, while bot checks, blank pages, and failed loads are not billed. It also provides an MCP server for AI agents. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. See ScreenshotNeo and the API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Sign up for 1,000 free screenshots a month, with no card required.
Frequently Asked Questions
Can I use this setting to download files from several pages?
It applies to the browser context, so pages created in that context use its download behavior. Each page still needs its own site-appropriate action to initiate a download.
Does Puppeteer return the downloaded file path?
The current Files guide does not document a programmatic download-handling API that returns download paths.
Can I use ScreenshotNeo to save files linked from a website?
No. ScreenshotNeo captures webpages as images or PDFs; it is not the mechanism for downloading arbitrary files from a page.
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.

