
In this tutorial, learn how to handle Playwright alerts and dropdowns including prompt and modal alerts, plus single-select, multi-select, and more.
Last Modified on: November 25, 2025
When you work with Playwright, alerts and dropdowns often appear as part of normal web application flow. Knowing how to handle Playwright alerts and dropdowns allows you to keep your automated tests running without interruption.
By handling these elements the right way, you can avoid unexpected test failures, match real user actions more closely, and ensure your tests give consistent results.
Overview
What Are Alerts in Playwright?
Alerts in Playwright are browser dialogs triggered by the page. You capture them with the dialog event, read their message, and accept, dismiss, or enter text to continue testing.
What Are Dropdowns in Playwright?
Dropdowns in Playwright are selectable lists built with native <select> elements or custom UI controls. You interact with them using selectOption for native selects or standard clicks for custom dropdown components.
How to Handle Playwright Alerts?
Playwright lets you work with browser dialogs like alerts, confirms, and prompts through thepage.on('dialog') event. You can listen for these dialogs, read their messages, and choose whether to accept or dismiss them.
How to Handle Playwright Dropdowns?
Dropdowns in Playwright can be managed by using select_option() or standard locators when working with custom UI components. These methods allow you to pick values by label, index, or value attributes.
In Playwright, alerts are browser dialogs that appear while a page is running to show a message or request an action. You typically encounter them as simple alerts, confirmation boxes, or prompts that ask for text input before the page can continue processing other interactions.
Here, you’ll rely heavily on good Playwright functions and selectors since alerts and dropdowns often appear only after user interaction, and these functions and selectors make targeting those elements much more reliable.
Note: Run Playwright tests across over 3000 real environments. Try LambdaTest Now!
Playwright allows handling prompt alerts and modal dialogs that interrupt normal page interaction. Prompt alerts can be handled using page.on("dialog") to provide input, and modal dialogs are handled via standard DOM interactions.
Prompt alerts request input from the user and pause interaction until a value is entered and OK or Cancel is clicked.
Test Scenario:
Implementation:
The test script below listens for the prompt alert, enters a value, and verifies that the text appears in the output.
import { expect, test } from "@playwright/test";
test("Prompt alert", async ({ page }) => {
await page.goto("https://www.lambdatest.com/selenium-playground/javascript-alert-box-demo
");
page.on("dialog", async (alert) => {
console.log(alert.message());
await alert.accept("koushik");
});
await page.locator("button:has-text('Click Me')").nth(2).click();
await expect(page.locator("#prompt-demo")).toContainText("'koushik'");
});
Code Walkthrough:
Modal alerts are page-based pop-ups that appear over the main content to capture attention. They are handled using standard DOM interactions rather than browser-level dialog methods.
Test Scenario:
Implementation:
The test script below interacts with a Bootstrap modal by clicking the buttons using standard selectors.
import { test } from "@playwright/test";
test("Modal alert", async ({ page }) => {
await page.goto("https://www.lambdatest.com/selenium-playground/bootstrap-modal-demo
");
await page.click("//button[@data-target='#myModal']");
await page.click("(//button[text()='Save Changes'])[1]");
});Code Walkthrough:
Once an alert is handled, Playwright assertions help confirm the page updated as expected, whether that’s a message appearing or a field changing value.
Test Execution:
Now, let's run the test for Playwright alerts (prompt and modal) using the following command:
npx playwright test tests/alerts.test.ts
You can also check out this video on handling Playwright alerts by Vignesh Srinivasa Raghavan, a Senior SDET with 10+ years of expertise in software automation testing, specializing in web, mobile, API, and performance testing.
In Playwright, dropdowns are HTML elements that allow you to select one or more options from a predefined list, typically implemented using the <select> tag. They are commonly used in forms and interactive interfaces to present choices without cluttering the page.
Dropdowns can be single-select or multi-select, and interacting with them requires choosing the correct option by value, label, or index.
Dropdowns allow you to select single or multiple options. Playwright provides selectOption() for standard HTML <select> elements, and standard DOM interactions for custom dropdowns like Bootstrap or jQuery-based dropdowns.
Single-select dropdowns allow choosing only one option at a time.
Test Scenario:
Implementation:
The test script below selects an option from a single-select dropdown.
import { test } from "@playwright/test";
test("Single-select dropdown", async ({ page }) => {
await page.goto("https://www.lambdatest.com/selenium-playground/select-dropdown-demo");
await page.selectOption("#select-demo", {
index: 5 // alternatively, use label: "Tuesday" or value: "Friday"
});
});Code Walkthrough:
Multi-select dropdowns allow selecting multiple options simultaneously.
Test Scenario:
Implementation:
import { test } from "@playwright/test";
test("Multi-select dropdown", async ({ page }) => {
await page.goto("https://www.lambdatest.com/selenium-playground/select-dropdown-demo");
await page.selectOption("#multi-select", [
{ label: "Texas" },
{ index: 2 },
{ value: "Washington" }
]);
});Code Walkthrough:
Custom dropdowns like Bootstrap or jQuery require opening the menu and selecting items using DOM locators.
Test Scenario:
Implementation:
import { test } from "@playwright/test";
test("Bootstrap/jQuery dropdown", async ({ page }) => {
await page.goto("https://www.lambdatest.com/selenium-playground/jquery-dropdown-search-demo");
await selectCountry("India");
await selectCountry("Denmark");
await selectCountry("South Africa");
async function selectCountry(countryName) {
await page.click("#country+span");
await page.locator("ul#select2-country-results")
.locator("li", { hasText: countryName })
.click();
}
});Code Walkthrough:
Test Execution:
Now, let's run the test for Playwright dropdowns using the following command:
npx playwright test tests/dropdown.test.ts
You can leverage the true capabilities of the Playwright test automation framework by running the test on cloud grids like LambdaTest.
Cloud testing platforms like LambdaTest offers Playwright cloud that allows you to run Playwright tests online on 50+ browsers and browser versions such as Chrome, Firefox, Opera, Edge, etc.
To get started, check out this documentation on Playwright testing with LambdaTest.
You now have a clear view of how Playwright handles alerts and dropdowns. You can detect, read, and control alerts, including prompts and modal dialogs, without interrupting your test flow.
Also, you can also manage single-select, multi-select, and custom dropdowns with direct, reliable interactions. With these skills, you can create stable tests that handle real user scenarios and respond accurately to page behavior.
Did you find this page helpful?
More Related Hubs
Start your journey with LambdaTest
Get 100 minutes of automation test minutes FREE!!