Recommended Free Tools
Listen for the dialog event on the Puppeteer Page. Its handler receives a Dialog object: inspect type() and message(), then explicitly await accept() or dismiss(). For a prompt that should submit text, pass that text to accept(value). This handles JavaScript dialogs—not every custom modal that happens to look like one.
Listen for Puppeteer’s dialog event
JavaScript dialogs interrupt the normal page flow until they are resolved. Register a listener on the relevant page before the action that might trigger a dialog. The listener receives a Dialog object for JavaScript dialogs such as alert, confirm, prompt, and beforeunload.
page.on('dialog', async dialog => {
console.log('Dialog type:', dialog.type());
console.log('Dialog message:', dialog.message());
if (dialog.type() === 'prompt') {
await dialog.accept('value to submit');
} else {
await dialog.dismiss();
}
});
// Register the handler before the action that triggers the dialog.
await page.evaluate(() => alert('Example alert'));
The sample chooses to submit a prompt value and dismiss other types. That is a policy decision, not a universal rule: choose the response that matches the outcome your test needs. The final line illustrates triggering an alert after listener registration; in an actual test, replace it with the application action being tested.
Inspect the dialog before choosing a response
The event callback gives you a Dialog object. Use its methods to distinguish cases and determine what the user would see.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
- CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
- INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
- THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
- WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
- A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents
| Method or property | What it tells you | Typical use |
|---|---|---|
type() |
The dialog type, such as alert, confirm, prompt, or beforeunload. |
Choose a response branch for the flow under test. |
message() |
The displayed dialog message. | Check that the expected text appeared or include it in diagnostic output. |
defaultValue() |
The prompt’s default value; it is an empty string for a non-prompt dialog. | Inspect the starting text when testing prompt behavior. |
handled |
Whether the dialog has been handled. | Check handling state when diagnosing dialog flow. |
For example, a confirm dialog may need to be accepted when testing the “continue” path and dismissed when testing cancellation. A prompt may require a particular submitted value, or dismissal if the test covers canceling input. Base the branch on both dialog type and intended application outcome rather than accepting every dialog indiscriminately.
Accept, dismiss, and enter prompt text
Accept a dialog
Call and await dialog.accept() when the test should accept the dialog. For a prompt, you can supply the value to enter:
page.on('dialog', async dialog => {
if (dialog.type() === 'prompt') {
await dialog.accept('test input');
return;
}
await dialog.accept();
});
The optional text passed to accept() supplies prompt input. It has no effect for dialog types other than prompt. When a prompt should use its existing default, call accept() without a custom value.
Dismiss a dialog
Call and await dialog.dismiss() when the test should cancel or reject the dialog. For example, dismissing a confirm dialog exercises its cancel path; dismissing a prompt tests cancellation instead of submission.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →page.on('dialog', async dialog => {
console.log(dialog.message());
await dialog.dismiss();
});
Both methods resolve the JavaScript dialog. Awaiting the chosen method makes the handler’s intended response explicit before the automation continues through its flow.
Rank #2
- CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
- 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
- SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
- INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
- THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
Handle each type according to the test
alert: choose a response that closes it, and encode that choice in the test rather than assuming a universal policy.confirm: accept to exercise confirmation or dismiss to exercise cancellation.prompt: callaccept(value)to submit text,accept()to accept without supplying custom text, ordismiss()to cancel.beforeunload: decide whether the test intends to allow or prevent the relevant navigation or close outcome. The dialog event is documented for this type, but the exact outcome of a particular flow may depend on browser and application behavior; verify the result in that flow.
Register at the right time and scope
Attach the listener to the Page that will produce the dialog, and register it before clicking, evaluating script, or taking another action that can trigger one. A handler attached after the action cannot respond to a dialog that has already interrupted the page.
For a test with different actions and expected responses, make the branching rule explicit. You can inspect both type and message, but avoid basing behavior on message text alone if several dialog types or flows could share similar wording. The dialog type identifies the interaction category; the test’s expected outcome determines whether to accept or dismiss.
If you only want to capture one known dialog around one action, a one-time listener can be useful, but it must still be installed before the action. For broader page behavior, a persistent page.on('dialog', ...) listener keeps handling later dialogs too. Whichever form you use, ensure the handler does not leave a dialog unresolved.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
JavaScript dialogs are not HTML modals
Puppeteer’s dialog event is for JavaScript dialogs. A site may instead render a modal as ordinary HTML: a dialog-shaped panel, overlay, cookie banner, or custom confirmation built from page elements. Such a modal does not necessarily emit the Page’s dialog event.
For ordinary page controls, use Puppeteer’s locator-based page interactions to find and act on the relevant elements. If no JavaScript dialog event arrives, inspect the page DOM and determine whether the apparent dialog is an in-page element. Do not wait indefinitely for a browser dialog when the application actually presents a DOM modal.
Troubleshoot dialog handling
The page appears stuck after an action
Likely cause: a JavaScript dialog appeared without a handler that resolves it, or the handler did not reach an awaited response.
Rank #3
- Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
- Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
- Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
- In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
- Ultra-thin bezels: Maximize your viewing experience with thin bezels.
Fix: register a dialog listener before the triggering action and await the intended accept() or dismiss() call. Log type() and message() while diagnosing so you can see which dialog the page raised.
The listener never runs
Likely cause: the UI is a custom HTML modal rather than a JavaScript dialog, or the listener is attached to a different page than the one that triggered the dialog.
Fix: confirm which Page performed the action. If the UI is part of the DOM, inspect its elements and handle it with locator interactions rather than waiting for the dialog event.
A prompt submits the wrong value
Likely cause: the handler accepted the prompt without passing the text the test expects, or a broad handler applied an unintended response.
Fix: check type(), inspect defaultValue() when relevant, and call accept('expected value') for the prompt branch. Keep unrelated dialog branches separate.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteRank #4
- CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
- SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
- MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
- KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
- INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient
The test follows the wrong confirm path
Likely cause: the handler always accepts or always dismisses, regardless of the case being tested.
Fix: encode the expected outcome for that test: accept to exercise confirmation, dismiss to exercise cancellation. Check the resulting page behavior, not only that the dialog disappeared.
A beforeunload test has an unexpected outcome
Likely cause: the test assumes that resolving the dialog always produces the same navigation or close result.
Fix: specify whether the case is meant to proceed or stay, choose the corresponding response, and assert the outcome in the actual navigation or close flow. The documented event confirms that this dialog type is surfaced; it does not establish one universal outcome for every browser-version and page combination.
Version and reliability notes
The official Puppeteer API pages consulted for this guidance carry version labels including 25.12.0 on the PageEvent, Dialog class, and page-interactions references, while the Dialog.accept() page displays 25.11.0. These are documentation version labels, not publication dates or a guarantee about the package installed in your project. Check the API reference matching your deployed Puppeteer version before relying on behavior from a different version.
Best Value
- 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
- 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
- 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.
For dependable tests, install the handler before the event-producing action, await resolution, and assert the intended consequence in the page or navigation flow. Logging type and message helps distinguish a missed handler from a different dialog branch; it does not replace asserting the application outcome.
Or skip the browser setup
If your goal is to capture a website rather than test its dialog interaction in Puppeteer, ScreenshotNeo provides a screenshot API and MCP server. It does not replace Puppeteer dialog handling or test whether your application accepts or dismisses a dialog. Its capture can accept cookie and consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets before taking the shot; those steps can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, with response headers indicating the page verdict and billing status. AI agents can use the MCP server tools take_screenshot, get_page_info, and capture_pdf.
One GET request returns an image or PDF; this cURL example saves a WebP shot. See the ScreenshotNeo API documentation for request options.
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 matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallcurl -G "https://api.screenshotneo.com/v1/shot"
-d access_key=YOUR_API_KEY
--data-urlencode url=https://stripe.com
-o shot.webp
The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Every feature is available on every plan. Sign up for free and get 1,000 screenshots a month with no card.
Frequently Asked Questions
Does Puppeteer’s dialog event detect a website’s cookie banner?
Only if the site presents it as a JavaScript dialog. A banner rendered as HTML is an element interaction, not necessarily a Page dialog event.
Can I provide text when accepting an alert?
The optional text passed to accept() is used for a prompt; it has no effect on other dialog types.
Which Puppeteer version should I use for this code?
Use the API reference matching the Puppeteer version installed in your project; the official documentation pages consulted show differing version labels.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →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.




