使用Playwright for Java测试对话框是否为弹出窗口

前端开发 2026-07-11

我有一个关于Playwright Java中对话框的疑问。

我的理解是可以通过 onDialog(), offDialog(), onceDialog() 来处理对话框,但在你触发按钮或类似操作时,它们并不适合测试对话框是否会显示。

例如,我尝试过的代码:

page.onceDialog(dialog -> {
            assertTrue(true);
            dialog.accept();
        });
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Open Dialog")).click();

……没有处理对话框从未显示的情况。

如果有一个简单的 waitForDialog() 方法,能够像对话框已显示或未显示那样进行完整测试,那就好了。

参考:

解决方案

使用 AtomicBoolean 类来解决。

AtomicBoolean displayed = new AtomicBoolean(false);
page.onceDialog(dialog -> {
    dialog.accept();
    displayed.set(true);
});
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Open Dialog")).click()
assertTrue(displayed.get());
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章