【Playwright + Python】系列(十)利用 Playwright 完美处理 Dialogs 对话框

哈喽,大家好,我是六哥!今天我来给大家分享一下如何使用playwight处理Dialogs对话框,面向对象为功能测试及零基础小白,这里我尽量用大白话的方式举例讲解,力求所有人都能看懂,建议大家先收藏,以免后面找不到。😎

Dialogs对话框到底是个啥?

这里说的Dialogs对话框,通常是指alertconfirmpromp对话框,可能会有同学说了,还是不到是啥呀?

没关系,能理解,那就先和它们见个面吧,怎么也得知道这东西长啥样吧,才能知道它是什么。

1、Alert

在这里插入图片描述

2、Confirm

在这里插入图片描述

3、Promp

在这里插入图片描述

好的,算是基本认识了吧,接下来,就是怎么处理了。

如何处理对话框

默认情况下,Playwright 会自动关闭对话框,不像什么Selenium你还得拿到对象后,accept之类的操作,根本不需要你来做任何处理。page.on(“dialog”) 侦听器会处理该对话框。

知识点部分说完了,下面我们来举个例子吧。

1、Alert处理

示例代码:

# Alert处理
page.goto("https://sahitest.com/demo/alertTest.htm")
page.get_by_text("Click For Alert").click()
page.on("dialog", lambda dialog: dialog.accept())

2、Confirm处理

示例代码

# Confirm处理
page.goto("https://sahitest.com/demo/confirmTest.htm")
page.get_by_text("Click For Confirm").click()
page.on("dialog", lambda dialog: print(dialog.message))

3、Promp处理

示例代码:

# Prompt处理
page.goto("https://sahitest.com/demo/promptTest.htm")
page.get_by_text("Click For Prompt").click()
page.on("dialog", lambda dialog: dialog.type(1111))
page.on("dialog", lambda dialog: dialog.accept())

4、BeforeUnload对话框处理

可能有些同学又要问了,这是个啥,大白话点说,就是你上传文件,弹出来要选文件的对话框,就长这样。如下:

在这里插入图片描述

知识点:

使用 truthy run_before_unload 值调用 page.close时,页面将运行其卸载处理程序。

示例代码:

    page.goto("https://sahitest.com/demo/php/fileUpload.htm")page.get_by_label('File:').click()page.on('dialog', lambda: handle_dialog)page.close(run_before_unload=True)def handle_dialog(dialog):assert dialog.type == 'beforeunload'dialog.dismiss()

5、Print dialogs打印对话框

这个就是你打印东西时候弹出的打印对话框了,类似如下:

在这里插入图片描述

**知识点:
**主要是通过 window.print 触发的打印对话框。

示例代码:

page.get_by_text('All popup this page').click()
page.on("dialog", lambda dialog: dialog.accept())
page.on("dialog", lambda dialog: dialog.accept())
page.on("dialog", lambda dialog: dialog.accept())
page.on("dialog", lambda dialog: dialog.accept())
page.evaluate("(() => {window.waitForPrintDialog = new Promise(f => window.print = f);})()")
page.get_by_text("Print").click()
page.wait_for_function("window.waitForPrintDialog")

写在最后

到此,关于使用playwight处理Dialogs的方法分享完毕,感兴趣的同学可以自行动手尝试。 如需要全部源代码,私聊我获取。希望大家都能顺利掌握,一起进步。也欢迎分享给更多有需要的朋友哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/470025.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM - 使用 LLaMA-Factory 微调大模型 Qwen2-VL SFT(LoRA) 图像数据集 教程 (2)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/143725947 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 LLaMA-…

自动驾驶3D目标检测综述(一)

文章地址:[2206.09474] 3D Object Detection for Autonomous Driving: A Comprehensive Survey (arxiv.org) 这篇综述简单易懂,非常合适对自动驾驶和3D目标检测感兴趣的小白阅读,对相关算法进行初步理解。 目录 一、摘要 (一&a…

回归分析学习

学习视频链接: 【回归分析,一套搞定】!全网最通俗易懂的回归分析教程,我终于学明白了!_哔哩哔哩_bilibili 相关分析:2个或两个以上的变量之间的相关程度及大小的统计方法; 回归分析:存在相关关…

LabVIEW 实现 find_nearest_neighbors 功能(二维平面上的最近邻查找)

1. 背景介绍 在数据分析和图像处理领域,经常需要查找给定点的最近邻居点。在LabVIEW中,计算二维平面上多个点之间的欧氏距离,并返回距离最近的几个点是一种常见操作。find_nearest_neighbors 函数用于实现这个功能。 2. 欧氏距离计算 在二维…

后端:Aop 面向切面编程

文章目录 1. Aop 初步学习面向切面编程,EnableAspectJAutoProxy2. AOP的核心概念3. 前置通知(Before)4. 后置通知(After)5. 返回通知(AfterReturning)6. 异常通知(AfterThrowing&…

无插件H5播放器EasyPlayer.js网页web无插件播放器vue和react详细介绍

EasyPlayer.js H5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)、WS、WEBRTC、FMP4视频直播与视频点播等多种协议,支持H.264、H.265、AAC、G711A、Mp3等多种音视频编码格式,支持MSE、WASM、WebCodec等多种解码方…

管家婆财贸ERP BB045.销售批量收款

最低适用版本: 财贸系列 22.8 插件简要功能说明: 销售类单据支持批量收款,简化收款做单流程更多细节描述见下方详细文档插件操作视频: 进销存类定制插件--销售批量收款 插件详细功能文档: 1. 应用中心增加菜单【销售批量收款】 a. 参考23.0应用中心-移动管理-物联宝-【…

基于MATLAB+opencv人脸疲劳检测

我们可以通过多种方式从现实世界中获取数字图像,比如:数码相机、扫描仪、计算机扫描和磁共振成像等等。在这些情况中,虽然我们肉眼看到的是图像,但是当需要将图像在数字设备中变换传输时,图像的每个像素则对应一个数值…

Prompt 工程

Prompt 工程 1. Prompt 工程简介 “预训练-提示预测”范式是近年来自然语言处理(NLP)领域的一个重要趋势,它与传统的“预训练-微调-预测”范式相比,提供了一种更为灵活和高效的模型应用方式。 Prompt工程是指在预训练的大型语言…

【Python TensorFlow】进阶指南(续篇一)

在前两篇文章中,我们介绍了TensorFlow的基础知识及其在实际应用中的初步使用,并探讨了更高级的功能和技术细节。本篇将继续深入探讨TensorFlow的高级应用,包括但不限于模型压缩、模型融合、迁移学习、强化学习等领域,帮助读者进一…

yolov7论文翻译

YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors 论文:https://arxiv.org/abs/2207.02696 代码:https://github.com/WongKinYiu/yolov7 摘要 YOLOv7 在速度和准确性方面均超越了所有已知的目标检测器&a…

Java基于SpringBoot+Vue的宠物共享平台的设计与实现(附源码,文档)

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

对称加密与非对称加密:密码学的基石及 RSA 算法详解

对称加密与非对称加密:密码学的基石及 RSA 算法详解 在当今数字化的时代,信息安全至关重要。对称加密和非对称加密作为密码学中的两种基本加密技术,为我们的数据安全提供了强大的保障。本文将深入探讨对称加密和非对称加密的特点、应用场景&…

43.第二阶段x86游戏实战2-提取游戏里面的lua

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…

基于matlab的CNN食物识别分类系统,matlab深度学习分类,训练+数据集+界面

文章目录 前言🎓一、数据集准备🎓二、模型训练🍀🍀1.初始化🍀🍀2.加载数据集🍀🍀3.划分数据集,并保存到新的文件夹🍀🍀4.可视化数据集&#x1f34…

【webrtc】 RTP 中的 MID(Media Stream Identifier)

RTP 中的 MID(Media Stream Identifier) RID及其与MID的区别 cname与mid的对比【webrtc】CNAME 是rtprtcp中的Canonical Name(规范化名称) 同样都是RTP头部扩展: 基于mediasoup的最新的代码,学习,发现mid在创建RtpSendStream时是必须传递的参数: 例如 D:\XTRANS\soup\…

Node.Js+Knex+MySQL增删改查的简单示例(Typescript)

数据库: CREATE DATABASE MyDB; CREATE TABLE t_users (user_id int(11) NOT NULL,user_name varchar(10) NOT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8; 项目结构: package.json如下,拷贝并替换你们本地的package.json后运行 npm install 命令安装所需要的依赖。…

【MATLAB代码】二维平面上的TDOA,使用加权最小二乘法,不限制锚点数量,代码可复制粘贴

本文所述的MATLAB代码实现了一个基于两步加权最小二乘法的二维目标定位算法,利用多个锚点(基站)和时间差到达(TDOA)数据来估计未知目标的位置。 订阅专栏后可以看到完整代码,复制到MATLAB空脚本上面即可直接运行。若需要单独下载,可通过下面的链接:https://download.cs…

python数据写入excel文件

主要思路:数据 转DataFrame后写入excel文件 一、数据格式为字典形式1 k e , v [‘1’, ‘e’, 0.83, 437, 0.6, 0.8, 0.9, ‘好’] 1、这种方法使用了 from_dict 方法,指定了 orient‘index’ 表示使用字典的键作为行索引,然…