Skip to main content
Version: 1.22


Playwright can interact with the web page dialogs such as alert, confirm, prompt as well as beforeunload confirmation.

alert(), confirm(), prompt() dialogs

By default, dialogs are auto-dismissed by Playwright, so you don't have to handle them. However, you can register a dialog handler before the action that triggers the dialog to accept or decline it.

page.onDialog(dialog -> dialog.accept());"button");

Page.onDialog(handler) listener must handle the dialog. Otherwise your action will stall, be it[, options]), Page.evaluate(expression[, arg]) or any other. That's because dialogs in Web are modal and block further page execution until they are handled.

As a result, following snippet will never resolve:



page.onDialog(dialog -> System.out.println(dialog.message()));"button"); // Will hang here

If there is no listener for Page.onDialog(handler), all dialogs are automatically dismissed.

API reference

beforeunload dialog

When Page.close([options]) is invoked with the truthy runBeforeUnload value, it page runs its unload handlers. This is the only case when Page.close([options]) does not wait for the page to actually close, because it might be that the page stays open in the end of the operation.

You can register a dialog handler to handle the beforeunload dialog yourself:

page.onDialog(dialog -> {
assertEquals("beforeunload", dialog.type());
page.close(new Page.CloseOptions().setRunBeforeUnload(true));