1.简介
我们在日常工作中,会经常遇到弹出警告框的问题,弹框无法绕过,必须处理才可以执行后续的测试,所以弹框处理也是我们必须掌握的一个知识。宏哥在java+selenium系列文章中介绍过这部分内容。那么,playwright对于弹框的处理是怎样的?是否比selenium更加简单呢?之前宏哥在Python+Playwright系列文章中也介绍过,看一下Java和Python的处理是否有区别?下面宏哥就来介绍一下playwright对于弹框的处理。自己在文章中查找答案。
2.弹框分类
弹框通常分为3种,分别为alert,confirm,promot。
- alert弹框:只有信息和确定按键
- confirm弹框:在alert弹窗基础上增加了取消按钮
- prompt弹框:在confirm的基础上增加了可输入文本内容的功能
3.dialog 弹窗
Dialog 对象通过 Page.onDialog(handler) 事件按页面调度。
使用 class 的示例:Dialog- import com.microsoft.playwright.*; public class Example { public static void main(String[] args) { try (Playwright playwright = Playwright.create()) { BrowserType chromium = playwright.chromium(); Browser browser = chromium.launch(); Page page = browser.newPage(); page.onDialog(dialog -> { System.out.println(dialog.message()); dialog.dismiss(); }); page.evaluate("alert('1')"); browser.close(); } } }
复制代码 敲黑板!!!注意:对话框会自动关闭,除非有 Page.onDialog(handler) 侦听器。当侦听器存在时,它必须 Dialog.accept() 或 Dialog.dismiss() 对话框 - 否则页面将冻结等待对话框,并且单击等操作将永远不会完成。
3.1dialog方法
3.1.1accept()
用法:- Dialog.accept(); Dialog.accept(promptText);
复制代码 参数:
promptText 字符串(可选), 要在提示中输入的文本。如果对话框 type 没有提示,则不会产生任何影响.
3.1.2defaultValue()
default_value, 如果对话框是提示的,则返回默认提示值。否则,返回空字符串。3.1.3dismiss()
当对话框被关闭时返回。3.1.4message()
message 获取对话框中显示的消息,。3.1.5page()
启动此对话框的页面(如果可用)。3.1.6type()
type返回对话框的类型,可以是alert, beforeunload, confirm或 prompt其中一个。3.2dialog 事件监听
Playwright 可以与网页对话框进行交互,例如 alert、confirm、prompt 以及 beforeunload 确认。playwright 框架可以监听dialog事件,不管你alert 什么时候弹出来,监听到事件就自动处理了。
默认情况下,Playwright 会自动关闭对话框,因此您不必处理它们。但是,可以在触发对话的操作之前注册对话处理程序 Dialog.accept() 或 Dialog.dismiss() 它。- page.onDialog(dialog -> dialog.accept()); page.getByRole(AriaRole.BUTTON).click();
复制代码 Page.onDialog(handler) 侦听器必须处理对话。否则,你的操作将停止,无论是 Locator.click() 还是其他内容。这是因为 Web 中的对话框是模态对话框,因此会阻止进一步的页面执行,直到它们被处理。
因此,以下代码段将永远无法解析:- page.onDialog(dialog -> System.out.println(dialog.message())); page.getByRole(AriaRole.BUTTON).click(); // Will hang here
复制代码 注:当没有page.on("dialog")侦听器存在时,所有对话框都会自动关闭。
3.模态框的定义
模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框关闭。一般来说,Windows应用程序中,对话框分为模态对话框和非模态对话框两种。二者的区别在于当对话框打开时,是否允许用户进行其他对象的操作。
3.1警告框
警告框经常用于确保用户可以得到某些信息。
当警告框出现后,用户需要点击确定按钮才能继续进行操作。
语法:3.2确认框
确认框用于使用户可以验证或者接受某些信息。
当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。
如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。
语法:3.3提示框
提示框经常用于提示用户在进入页面前输入某个值。
当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。
如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。
语法:3.4测试页面准备
ModalDialogueBox.html页面参考代码如下:
[code] 模态框 北京-宏哥
测试练习模态框的处理:
1.警告框
2.确认框
3.提示框
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |