In Playwright, you can handle browser dialogs by registering a dialog handler before triggering the action that opens the dialog. This is done using the page.on('dialog')
method.
Here's a quick example:
// Register a dialog handler
page.on('dialog', async (dialog) => {
console.log(dialog.message()); // Print the message of the dialog
await dialog.accept(); // Accepts and closes the dialog
});
// Clicking a button that triggers a browser dialog
await page.getByRole('button').click();
In this code, we're simulating a button click with page.getByRole('button').click()
. If a dialog appears, it's handled by the dialog
event listener. Inside this listener, you can perform actions or verifications as needed.
Remember to replace 'button'
with the correct role selector for your use case.
If there's no listener for page.on('dialog')
, dialogs are automatically dismissed. So, make sure to handle them properly to verify their appearance after a button click.
For more insights on handling flaky tests in Playwright, check out this blog post.
If you still have questions, please ask a question and I will try to answer it.
Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email [email protected].