哈喽,大家好,我是六哥!今天我来给大家分享一下如何使用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的方法分享完毕,感兴趣的同学可以自行动手尝试。 如需要全部源代码,私聊我获取。希望大家都能顺利掌握,一起进步。也欢迎分享给更多有需要的朋友哦!

【Playwright + Python】系列(十)利用 Playwright 完美处理 Dialogs 对话框的更多相关文章

  1. Python系列之——利用Python实现微博监控

    0x00 前言: 前几个星期在写一个微博监控系统 可谓是一波三折啊 获取到微博后因为一些字符编码问题 导致心态爆炸开发中断 但是就在昨天发现了另外一个微博的接口 一个手机微博的接口https://m. ...

  2. python系列十六:Python3 面向对象

    #!/usr/bin/python #-*-coding:gbk-*- #Python3 面向对象 '''面向对象技术简介    类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了 ...

  3. python系列十五:Python3 错误和异常

    #!/usr/bin/python #-*-coding:gbk-*- #Python3 错误和异常'''Python 语法错误或者称之为解析错语法分析器指出了出错的一行,并且在最先找到的错误的位置标 ...

  4. python系列十四:Python3 文件

    #!/usr/bin/python #Python3 文件 from urllib import requestimport pprint,pickle'''读和写文件open() 将会返回一个 fi ...

  5. python系列十二:python3模块

    #!/usr/bin/python # This Python file uses the following encoding: gbk #Python3 模块 '''用 python 解释器来编程 ...

  6. python系列十:python3函数

    #!/usr/bin/python #-*-coding:gbk-*- '''函数的简单规则:    函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ().    任何传入参数和自变量必 ...

  7. 一篇夯实一个知识点系列--python实现十大排序算法

    写在前面 排序是查找是算法中最重要的两个概念,我们大多数情况下都在进行查找和排序.科学家们穷尽努力,想使得排序和查找能够更加快速.本篇文章用Python实现十大排序算法. 干货儿 排序算法从不同维度可 ...

  8. Python 爬虫十六式 - 第一式:HTTP协议

    HTTP:伟大而又无闻的协议 学习一时爽,一直学习一直爽!   Hello,大家好啊,我是Connor,一个从无到有的技术小白.有的人一说什么是HTTP协议就犯愁,写东西的时候也没想过什么是HTTP协 ...

  9. Web 前端开发精华文章集锦(jQuery、HTML5、CSS3)【系列十八】

    <Web 前端开发精华文章推荐>2013年第六期(总第十八期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和 C ...

  10. SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据

    原文:SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Se ...

随机推荐

  1. Fluent Editor:一个基于 Quill 2.0 的富文本编辑器,功能强大、开箱即用!

    你好,我是 Kagol,个人公众号:前端开源星球. 今年4月份,听到 Quill 2.0 正式发布的消息,我心情非常激动,立马体验了下,并写了一篇文章. 重回铁王座!时隔5年!Quill 2.0 终于 ...

  2. wiz 为知笔记服务器 docker 跨服务器迁移爬坑指北

    本文主要是介绍 wiz 为知笔记服务器 docker 从旧服务器迁移到新服务器的步骤以及问题排查. 旧服务器升级 wiz docker 目的:保持和新服务器拉取的镜像版本一致. 官方只留了 wiz d ...

  3. 记一次 .NET某实验室自动进样系统 崩溃分析

    一:背景 1. 讲故事 前些天有位朋友在微信上联系到我,说他们的程序在客户那边崩掉了,让我帮忙看下怎么回事,dump也拿到了,那就上手分析吧. 二:WinDbg 分析 1. 哪里的崩溃 既然是程序的崩 ...

  4. Maven 换源

    ~/.m2/settings.xml <settings> ... <mirrors> ... <mirror> <id>alimaven</id ...

  5. 火山引擎VeDI赋能小城酒店业,助力“流量”向“留量”转化

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群.   今年,"去小城过假期"正悄然流行.根据途牛旅游发布的<2024年上半年度旅游消费报 ...

  6. [python][selenium] Web UI自动化页面切换iframe框架

    关联文章:Web UI自动化8种页面元素定位方式 1.切换iframe的方法:switch_to.frame  入参有4种:  1.1.id  1.2.name  1.3.index索引  1.4.i ...

  7. CSS MASK

    首先看如下效果: 这种效果看起来很赞,可以做出很酷炫的交互,比如图上这种,还有一种就是引导页 经过我阅读作者的文章,原文地址. 发现其实只要使用两个核心CSS样式就能实现这个效果 分别为: 1. ba ...

  8. 音视频 SDK |合理配置视频参数,提升使用质量

    一.前言 在视频通话或直播时,开发者可以根据需要指定推流和拉流视频相关配置,如视频采集分辨率.视频编码输出分辨率.视频帧率.码率.视图模式和镜像模式. 设置合适的视频分辨率.帧率和码率可以在音视频场景 ...

  9. web前端常用的五种方式搭建本地静态html页面服务器

    方式一:live-server live-server是一款npm工具,可以在项目目录启动一个node服务,然后直接在浏览器中预览,并且自动全局监听实时更新. 两种安装方式: 全局安装 npm i l ...

  10. ASP.NET Core C# 反射 & 表达式树 (第三篇)

    前言 前一篇讲完了反射, 这一篇来讲一下和反射息息相关的表达式树. 首先搞清楚 Delegate, Action, Func, Anonymous Method, Lambda, Expression ...