Skip to main content

How to handle JS Alerts in Playwright?

 What are JS Alerts ?

An alert box is often used if you want to make sure information comes through to the user.

JavaScript has three kind of popup boxes: 

  • Alert box, 
  • Confirm box, and 
  • Prompt box. 

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 either Dialog.accept() or Dialog.dismiss() it.

page.onDialog(dialog -> System.out.println(dialog.message()));

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

For Prompt alert we need handle explicitly write page listener onDialog methods
 page.onDialog(dialog -> {
            System.out.println(dialog.message());
            //dialog.accept("Accepting with Entered data");
            dialog.type();          
            dialog.dismiss();
            //dialog.accept("Accepting with Entered data");
        });

Example web sites : 
https://www.lambdatest.com/selenium-playground/javascript-alert-box-demo
https://www.lambdatest.com/selenium-playground/javascript-alert-box-demo

Sample Program as below 
package com.example;

import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;

public class Alerts2Example {

public static void main(String[] args) {
Playwright playwright = Playwright.create() ;
Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions()
.setHeadless(false)
.setChannel("chrome"));
Page page = browser.newPage();
// page.navigate("https://web-scraping.dev/product/1?variant=orange-small");
// page.locator("//button[contains(@class,'btn btn-secondary')]").click();
// page.locator(".cart-icon").click();
// page.locator("//button[normalize-space(text())='Clear']").click();
page.navigate("https://www.lambdatest.com/selenium-playground/javascript-alert-box-demo");
// page.locator("(//button[contains(@class,'btn btn-dark')])[1]").click();
page.onDialog(dialog -> {
System.out.println(dialog.message());
//dialog.accept("Accepting with Entered data");
dialog.type();
dialog.dismiss();
//dialog.accept("Accepting with Entered data");
});
page.locator("(//button[contains(@class,'btn btn-dark')])[2]").click();
// page.locator("(//button[contains(@class,'btn btn-dark')])[3]").click();

}
}

Comments

Popular posts from this blog

Step-by-Step: Launch Browser, Context, and Page in Playwright and Run Test and Configuration (JavaScript)

πŸŽ₯ Setup Browser, Context, Page & Run Config Test Scripts with package.json & playwright.config.js Step-by-Step: Launch Browser, Context, and Page in Playwright and Run Test and Configuration (JavaScript) 1. Install Playwright You can install Playwright using the following command: npm init playwright@latest 2. Create a Basic Test Script Understand the core Playwright architecture: Element Description browser Controls the browser instance (like Chrome, Firefox, etc.) context Acts like a separate browser profile (cookies, localStorage are isolated) page A single browser tab where interaction happens 3. Run the Test npx playwright test example.spec.js Ways to Run TypeScript Tests Way Command Notes 🟒 Via npx npx playwright test Uses built-in TypeScript support 🟒 With s...

Playwright Test Structure in Details -Session-02

πŸŽ₯ Playwright: test.only, Hooks & Grouping with test.describe Explained Let’s go step-by-step , showing how to build from a single test , to using beforeEach / afterEach , and then organizing things with test.describe . ✅ Step 1: Basic Single Test with test.only import { test, expect } from '@playwright/test' ; test. only ( 'πŸš€ Basic test - check title' , async ({ page }) => { await page. goto ( 'https://example.com' ); await expect (page). toHaveTitle ( /Example Domain/ ); }); test.only ensures only this test runs — great for debugging. ✅ Step 2: Add beforeEach and afterEach import { test, expect } from '@playwright/test' ; test. beforeEach ( async ({ page }) => { console . log ( 'πŸ”„ Setting up before each test' ); await page. goto ( 'https://example.com' ); }); test. afterEach ( async ({ page }, testInfo) => { console . log ( `πŸ“¦ Finished test: ${testInfo.title} `); }); test. only ( ...

How to Maximize a Browser window using Playwright Java

  Playwright itself does not have a direct maximize () method like some other browser automation tools, but you can achieve the effect by setting the viewport to the screen size of your display. Below are ways to handle Maximize a browser in Playwright Java  Ø   Setting the viewport to the screen size  o    setViewportSize(1920, 1080): This sets the browser window to a full HD resolution, effectively maximizing it. o    setHeadless(false): Ensures the browser runs in a visible mode so you can see the window being maximized.  Code Snapshot  Playwright playwright = Playwright. create ()   ;   Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false));     // Create a new browser context   BrowserContext context = browser.newContext(new Browser.NewContextOptions()          .setViewportSize(1920, 1080));     ...