Use the browser’s HTMLInputElement.showPicker() method to ask it to open a native date picker, then use Puppeteer’s page.screenshot() to capture the page. These are separate APIs: showPicker() is a web-platform method, not a Puppeteer method, and Puppeteer’s documentation does not guarantee that a browser’s native popup will appear in a screenshot. If the picker itself must be visible in a reliable tutorial image, test the exact browser and launch mode you plan to publish from—or use a calendar widget rendered inside the page.
What Puppeteer can—and cannot—do
Puppeteer is a JavaScript library for controlling Chrome or Firefox and runs headless by default. It can interact with a webpage and capture a screenshot of it. To request a date picker, the page uses the browser API HTMLInputElement.showPicker(); to save an image, Puppeteer uses Page.screenshot().
That distinction matters because a native picker is browser or operating-system UI, not necessarily ordinary webpage content. The API documentation describes opening the picker and taking a page screenshot separately, but does not promise that the native popup will be included in the captured image on every platform or in every headless/headful configuration. Treat visibility as something to verify in your own target environment, not as a guaranteed effect of calling showPicker().
The browser method is commonly implemented for date, month, week, time, datetime-local, color, and file inputs. MDN says it has been available across browsers since September 2022, while noting that support details can vary. See MDN’s showPicker() reference for current support and exceptions.
Recommended Free Tools
#1 Best Overall
- [INTEL POWERED CONTENT] - Built with a 8th Generation Hexa-Core Intel i5 and 32GB of DDR4 RAM; Modern, Windows 11 ready, with 4K support, Executive multitasking, media streaming and smooth, multi-tab web browsing; Perfect as an all-purpose multimedia computer; built for content creators; Plenty of RAM and Mass storage for photo and video editing powered by Intel HD 630
- [LATEST WIRELESS TECH] - This Dell Desktop Computer easily connects to the internet through the Built In WiFi / Bluetooth
- [SOLID STATE STORAGE] - This Dell Computer setup comes with an ultra-fast 1TB Solid State Drive (SSD); Setup as the primary boot device; Boot and load programs with lightning speed ; Additional expansion available
- [BUY & OWN WITH CONFIDENCE] - From the world's largest Microsoft Authorized Refurbisher; Quality Guarantee and Free Tech Support; Award-winning Customer Service; | Support Sustainable Business
- [MODERN HI-SPEED PORTS] - USB 3.0 (x4) | USB 2.0 (x4) | DisplayPort (x1) | HDMI Port (x1) | Audio Combo Jack (x1) | Audio Out (x1) | RJ-45 Ethernet (x1) | Internal SATA (x3)
Open a date picker through a real user action
showPicker() requires transient user activation. A practical page pattern is to call it from a click handler. Puppeteer can click that button, which is preferable to invoking showPicker() through arbitrary page evaluation: an evaluation without qualifying activation may fail with NotAllowedError.
Minimal page example
<input id="date" type="date">
<button id="open" type="button">Open calendar</button>
<script>
document.querySelector('#open').addEventListener('click', () => {
document.querySelector('#date').showPicker();
});
</script>
The input should be enabled and mutable. A disabled or read-only input is not a useful target for this interaction. Keep the button’s click handler on the page: the browser recognizes the user action associated with the click, while an unrelated later script call may not have that activation.
Capture with Puppeteer
Install Puppeteer in a Node.js project with npm install puppeteer. The following complete script loads a local HTML file, clicks its button, waits briefly for the browser to respond, and writes a PNG. Save the preceding markup as calendar.html in the same directory, then save this script as capture.js.
Rank #2
- Model: Dell OptiPlex 7050 Small Form Factor (SFF)
- Processor: Intel Core i7-7700 3.60 GHz
- Memory: 32GB DDR4 Ram
- Storage: 1TB Solid State Drive (SSD) Fast Boot + Storage
- Operating System: Windows 11 Pro (64-bit)
const puppeteer = require('puppeteer');
const path = require('path');
(async () => {
const browser = await puppeteer.launch();
try {
const page = await browser.newPage();
await page.setViewport({ width: 900, height: 700 });
await page.goto(`file://${path.resolve('calendar.html')}`, {
waitUntil: 'load',
});
await page.waitForSelector('#open', { visible: true });
await page.click('#open');
await new Promise(resolve => setTimeout(resolve, 300));
await page.screenshot({ path: 'calendar-picker.png' });
} finally {
await browser.close();
}
})().catch(error => {
console.error(error);
process.exitCode = 1;
});
Run it with node capture.js. The output is calendar-picker.png. The short wait is only a timing allowance for the interaction; it does not make native-popup capture portable or guarantee that the popup remains open. Open the resulting file and confirm that the picker is actually visible. If it is absent, Puppeteer may still have captured the webpage correctly while omitting native UI.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Capturing a real webpage
For a page you control at an HTTP(S) URL, replace the file:// navigation with its URL, for example await page.goto('https://example.com/date-demo', { waitUntil: 'load' });, and ensure that it contains the same enabled input and click handler. For a third-party page, you generally cannot add that handler yourself; use the page’s existing control and interactions if available. Do not assume a date field will expose a clickable “open calendar” button.
Choose screenshot scope and format
page.screenshot() saves a page screenshot and returns binary image bytes by default. Its path option writes to a file; documented screenshot options also include fullPage, clip, and type. The documented default output type is PNG, and fullPage defaults to false. These options control page capture scope and output—they do not provide a setting to force the browser-native picker into the screenshot.
Rank #3
- IMMERSIVE 24 INCH DISPLAY: Experience stunning clarity on a Full HD IPS screen with ultra-thin bezels, offering a 90% screen-to-body ratio that makes everything from spreadsheets to streaming come alive with vibrant colors and crisp details.
- POWERFUL INTEL PROCESSING: Tackle demanding tasks with ease thanks to the Intel processor and 16GB of high-speed memory, delivering smooth performance whether you're multitasking between applications or running productivity software.
- GENEROUS STORAGE: Store all your important files, photos, and programs with blazing-fast solid state drive technology that ensures quick boot times, rapid file access, and plenty of space for your digital life.
- ENHANCED PRIVACY AND COLLABORATION: Work confidently with the pop-up privacy camera that tucks away when not in use, plus dual microphones with noise reduction for crystal-clear video calls that keep you connected professionally.
- ECO-CONSCIOUS DESIGN: Feel good about your purchase with an EPEAT Gold registered and ENERGY STAR certified computer that combines premium performance with responsible environmental manufacturing practices.
- Viewport image: omit
fullPageto capture the current viewport, as in the runnable example. - Full page: pass
{ path: 'page.png', fullPage: true }when you need the full document. This expands page capture; it does not guarantee native UI capture. - Clipped region: pass a
cliprectangle with the desired page coordinates and dimensions when you only need part of the page. A clip cannot make a missing native popup appear. - Image type: use the documented
typeoption for supported image output formats. If you set a type other than PNG, check the corresponding format requirements in the Puppeteer documentation for your installed version.
For an image that others must reproduce, record the Puppeteer version, browser build, operating system, and whether the browser was headless or headful. Those details define the environment in which you checked the image; they are not a cross-platform guarantee.
Native picker or page-rendered calendar?
| Choice | Best when | Trade-off for capture |
|---|---|---|
Native date picker with showPicker() |
The point is to demonstrate the browser’s own date control and its platform-specific behavior. | It asks the browser to display its picker, but the cited API documentation does not establish that Puppeteer will include the popup in every screenshot environment. Validate the exact setup. |
| Calendar rendered in the webpage | The image must be deterministic, consistently visible, and suitable for a tutorial or documentation page. | It shows the widget’s design rather than the browser or operating system’s native picker. You control its markup and visible state as page content. |
Use the native route when teaching the native control, and make the resulting capture an explicit test in your publishing workflow. If the reader needs a repeatable illustration rather than a faithful example of native browser UI, a page-rendered calendar is the more controllable choice. This is a choice about the purpose of the image, not an empirical claim that one approach captures better on every system.
Troubleshooting
The picker does not open
- Cause:
showPicker()ran without transient user activation. Fix: call it from a click handler and have Puppeteer click that page control. - Cause: the input is disabled, read-only, missing, or not the expected input type. Fix: verify the selector, confirm the element is an enabled mutable
input[type="date"], and wait for it to exist before clicking. - Cause: the page uses a custom calendar instead of the browser’s native date control. Fix: interact with the custom widget’s own UI;
showPicker()does not turn arbitrary page elements into native date inputs.
The screenshot is saved, but the calendar is missing
This can happen even when the page screenshot succeeds: the API documentation does not promise native popup inclusion for all browser, operating-system, and headless/headful combinations. Inspect the saved image, then validate the same script in the exact environment intended for publication. If the native popup is still absent, use a page-rendered calendar for deterministic tutorial imagery rather than claiming the native popup was captured.
Rank #4
- This Certified Refurbished product is tested and certified to look and work like new. The refurbishing process includes functionality testing, basic cleaning, inspection, and repackaging. The product ships with all relevant accessories, a minimum 90-day warranty, and may arrive in a generic box. Only select sellers who maintain a high-performance bar may offer Certified Refurbished products on Amazon.com.
- Dell Optiplex 3050 SFF Desktop computer PC, Intel Quad Core i5-6500 up to 3.6GHz, 16GB DDR4, 256GB SSD
- Includes: USB Keyboard & Mouse, USB WiFi adapter, Microsoft office 30 days free trail.
- Port: Front: USB 3.0(2), USB 2.0(2); Rear: DP, HDMI, USB 3.0(2), USB 2.0(2), RJ-45.
- Support 4K (3840x2160) Dual display, makes it easy to connect two monitors at the same time, and you can expand working Windows, mirror content, or expand a single window across multiple monitors.
The script times out or saves the wrong page
- Check that the URL or local file path resolves to the intended document, and that navigation completes before the selector wait.
- Confirm that
#openmatches the button in the loaded document and is visible. Use a selector for the actual control if its ID differs. - If the live page loads its date control asynchronously, wait for the relevant element or application state before clicking. A fixed delay before interaction is not a substitute for waiting for the selector.
- Keep the browser cleanup in a
finallyblock so a failed navigation or screenshot does not leave the launched process running.
Performance, repeatability, and cost
A single capture usually involves launching or connecting to a browser, loading the page, performing the interaction, and writing the image. Reusing a browser for multiple pages can avoid repeatedly launching it, but each page still needs its own correct navigation and interaction sequence. A fast screenshot is not useful if the picker failed to open or the capture omitted it.
For repeatable output, stabilize the page’s own content, wait for meaningful readiness conditions, and inspect representative output after changing browser versions or launch configuration. Native picker rendering is the uncertain part; fullPage, clip, and output type affect the page screenshot rather than resolving that uncertainty. Puppeteer itself does not specify a per-capture price in the cited API material; any infrastructure or browser-hosting cost depends on where and how you run it.
Or skip the browser setup
If your goal is a page screenshot rather than specifically proving that a native calendar popup appears, ScreenshotNeo offers a one-request screenshot API. It cannot make the browser-native date-picker visibility guarantee that Puppeteer’s docs do not make; use it for capturing the webpage, not as a substitute for validating native popup capture.
Best Value
- Connectivity: Includes WiFi, Bluetooth, and LAN for wireless and wired connections
- Memory: Features 16GB DDR4 RAM for smooth multitasking and performance
- Storage: Combines 500GB SSD and 1TB HDD for ample storage space
- Graphics: Integrated Intel UHD Graphics 630 for crisp visuals and video playback
- Design: Sleek desktop tower with black color and slim profile for modern look
For example, this cURL request captures a webpage as WebP:
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 API details. Its clean-shot steps accept cookie or consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing, and the response identifies page verdict and billing status in headers. It also has an MCP server for AI agents, with take_screenshot, get_page_info, and capture_pdf. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. Every feature is on every plan.
Sign up for 1,000 free screenshots a month with no card.
Frequently Asked Questions
Can Puppeteer set the selected date before opening the picker?
A date input’s value and its visible native calendar popup are separate states. Setting a value does not itself establish that the popup is open or will appear in a screenshot.
PC 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 & 11Outdated 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 matchDoes showPicker() belong to Puppeteer?
No. It is an HTML input method provided by the browser; Puppeteer can drive the page interaction that calls it.
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.

