Search code examples
webautomationplaywright

How can i handle popups in playwright-java?


How can i handle alerts and popups in playwright-java? there are different methods in API like page.onDialog(), page.onPopup(), what is the difference between them and how can i generate a handle?

//code to launch my browser and url
            Playwright playwright = Playwright.create();
            Browser browser = playwright.chromium().launch(new LaunchOptions().withHeadless(false).withSlowMo(50));
            BrowserContext context = browser.newContext();
            Page page = context.newPage();
            page.navigate("http://myurl.com");
    
//had to switch to iframe to click on upload button
            Frame mypage = page.frameByName("uploadScreenPage");
    
//below line is triggering the alert
            mypage.setInputFiles("//*[@id='fileUpload']",Path.of("C:\\myFile.jar"));
            
//using this code to handle alert, which is not working
            page.onDialog(dialog -> {dialog.accept();});

unable to accept alert using the above code. also alert has occurred after clicking an element that is inside an iframe. how can i handle such alerts? enter image description here


Solution

  • Dialogs are messages like an alert or a confirm, whereas popups are new pages, like the one you would get by calling window.open.

    This is how you can use it :

    page.onDialog(dialog -> {
        assertEquals("alert", dialog.type());
        assertEquals("", dialog.defaultValue());
        assertEquals("yo", dialog.message());
        dialog.accept();
    });
    page.evaluate("alert('yo')");