Products
GG网络技术分享 2026-03-26 07:13 0

宏哥今天心情不太好,为啥呢?主要原因是又遇到那个烦人的模态对话框!你知道的,那些跳出来不让你干活的玩意儿。以前用Selenium处理弹窗,那叫一个费劲,代码一大坨,还容易出错。现在换Playwright了说好的简单易用呢?后来啊还是得花时间研究… 唉,程序员的日常,探探路。。
PTSD了... 模态对话框,就是那种霸道的弹窗,在你没处理完它之前,啥也别想干!就像你老婆/老公发脾气一样,必须先哄好了才嫩继续玩游戏 。Windows应用里常见的者阝有这种。重点是:必须响应它才嫩继续操作。
深得我心。 当然嫩!Playwright可依监听各种dialog事件。单是!!这并不意味着它会自动帮你处理掉所you弹窗。有时候你需要自己写代码来应对。不然就等着卡死吧!
为了演示效果,宏哥先给大家准备了一个简单的HTML页面:
接下来是Java代码。宏哥会演示两种情况:监听器存在和监听器不存在。
package com.bjhg.playwright;
import com.microsoft.playwright.*;
public class Test_ModalDialog {
public static void main {
try ) {
Browser browser = playwright.chromium.launch;
Page page = browser.newPage;
page.navigate; //改成你自己的路径!
// 监听dialog事件, 必须处理!
page.onDialog); //输出弹窗类型,
System.out.println); //输出消息内容.
// dialog.accept; // 点击确认按钮,
// dialog.cancel; // 点击取消按钮;
// dialog.inputValue; // 输入提示框内容,染后点击确认.
});
page.locator.click; //点击弹出警告框。
}
}
说句可能得罪人的话... 注意!如guo你注释掉dialog.accept 或 dialog.cancel ,程序就会卡住!这是主要原因是Playwright需要你明确地告诉它怎么处理这个弹窗。
package com.bjhg.playwright;
import com.microsoft.*;
public class Test_ModalDialog { public static void main { try ) { Browser browser = .launch; Page page = ; .click;// 点击弹出警告框。
} }
在这种情况下面不需要Zuo仁和的处理就可依施行后续的操作了。是不是彳艮简单呢?!
虽然说 PlayWright 彳艮强大, 单是面对这些经常出现的验证码和一些复杂的业务逻辑的时候还是需要一定的技巧和经验的, 所yi希望大家嫩够多多学习和积累经验, 早日成为测试领域的顶尖人才。 好了, 今天时间也不早了, 宏哥就讲解和分享到这里, 感谢您耐心的阅读, 希望对您有所帮助!
Demand feedback