selenium自动化之弹窗处理 📅 发布时间:2026/7/16 8:31:06 👁️ 浏览次数: 点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快1、前言我们在使用Selenium做Web自动化测试时页面经常出现弹窗如果不处理后续的测试脚本就无法正常运行今天我们就带大家一起来学习如何处理Web页面上的弹窗。2、Web页面弹窗的分类弹窗通常有3种Alert类型弹框、Confirm类型弹框、Prompt类型弹框这种我们无法通过定位元素来操作。它们的具体特点如下Alert弹窗只有信息及确认按钮Confirm弹窗在Alert弹窗基础上增加了取消按钮Prompt类型弹框在Confirm的基础上增加了可输入文本内容的功能3、解决方案selenium中提供了如下方法来处理弹窗具体的解决方案如下from selenium import webdriver driver webdriver.Chrome() driver.switch_to.alert.accept() #确定、同意三种弹窗都可使用 driver.switch_to.alert.dismiss() #取消、不同意confirm和prompt弹窗中使用 title driver.switch_to.alert.text #打印弹窗信息 alert driver.switch_to.alert #获取alert对象 alert.send_keys() #Prompt弹窗中输入内容有些弹窗并非浏览器的alert 窗口而是html元素这种对话框只需要按照常规的定位页面元素进行处理即可4、实战演练import unittest from selenium import webdriver from time import sleep class TestAlert(unittest.TestCase): def setUp(self): self.driver webdriver.Chrome() self.driver.implicitly_wait(5) self.driver.maximize_window() def tearDown(self): self.driver.quit() def test_alert(self): self.driver.get(rhttp://sahitest.com/demo/alertTest.htm) self.driver.find_element(name,b1).click() alert self.driver.switch_to.alert print(alert.text) alert.accept() sleep(2) def test_confirm(self): self.driver.get(rhttp://sahitest.com/demo/confirmTest.htm) self.driver.find_element(name,b1).click() alert self.driver.switch_to.alert print(alert.text) alert.accept() # alert.dismiss() sleep(2) def test_prompt(self): self.driver.get(rhttp://sahitest.com/demo/promptTest.htm) self.driver.find_element(name,b1).click() alert self.driver.switch_to.alert print(alert.text) alert.send_keys(CR77777777777777777) sleep(1) alert.accept() sleep(2) if __name__ __main__: unittest.main()最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。
PaddleOCR-VL GPU环境下PDF批量处理最佳实践:解决显存溢出与性能优化 PaddleOCR-VL GPU环境下PDF批量处理最佳实践:解决显存溢出与性能优化 一、前言 在实际项目中,我们经常需要对大量PDF文档进行OCR识别,并将其转换为结构化的JSON和Markdown格式。本文将详细介绍如何使用PaddleOCR-VL模型,在GPU环境下高效、稳定地处理PDF文件,特别针对显存… 2026/7/16 4:40:44
【综合能源】含氢气氨气综合能源系统优化调度附Matlab代码 ✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &#… 2026/7/12 15:42:51
Java springboot基于Android的微博客系统(源码+文档+运行视频+讲解视频) 文章目录 系列文章目录前言一、开发介绍二、详细视频演示三、项目部分实现截图 四、uniapp介绍 五、系统测试 六、代码参考 源码获取 目的 微博客作为社交媒体的重要形式,已成为人们分享生活、交流思想的重要平台。本微博客系统采用Java Spring Boot框架与Androi… 2026/7/16 8:16:30
从语言障碍到游戏自由:XUnity.AutoTranslator 完整使用指南 从语言障碍到游戏自由:XUnity.AutoTranslator 完整使用指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏而苦恼吗?XUnity.AutoTranslator 为你打开通往全球游戏世… 2026/7/16 8:29:50
2026最新语音转文字哪个好 | 实测筛选后的口碑工具选择建议 2026找语音转文字工具,针对医疗、法律从业者的核心需求——专业术语识别准、隐私安全、能帮着消化继续教育内容,没有绝对的“最好”,只有适配你的选择。通用工具适合日常轻度使用,要是你天天要处理专业内容,整理录音纪… 2026/7/16 8:29:50
RabbitMQ如何保证消息的顺序性 消息的顺序性保证是指:消费者消费的消息和生产者发送的消息顺序是一致的.应用场景:如用户修改信息,对同一个用户的同一个资料进行修改时,需保证消息的顺序,比如我短时间内对于我的昵称修改了两次,需要保证这个修改的两次操作的消息能够被消费者有序的消费,才能确保我最终修改的… 2026/7/16 8:27:49
【SystemVerilog】从赋值到传递:解锁typedef struct结构体的高效应用场景 1. 为什么需要typedef struct结构体 在硬件设计领域,我们经常需要处理复杂的数据组织形式。想象一下,你正在设计一个网络交换芯片,每个数据包都包含目标地址、源地址、校验码、优先级标记等十几个字段。如果每个字段都单独声明和传递… 2026/7/16 8:25:46
OpenClaw+iStoreOS:构建家庭AI网关的完整实践指南 1. 这不是“刷个固件”那么简单:OpenClaw 在 iStoreOS 上的定位本质很多人看到标题里“一键部署 OpenClaw”,第一反应是:“哦,又一个能装在路由器上的 AI 小玩具?”——这恰恰是踩坑前最危险的认知偏差。我去年在飞牛 … 2026/7/16 8:17:40
C++与.NET深度融合:HostingCLR技术实现进程内插件系统 1. 项目概述:当C遇见.NET,一场深度的运行时融合如果你是一个长期深耕在C领域的开发者,最近可能被一个词刷屏了:HostingCLR。这听起来像是一个晦涩的底层技术,但它背后代表的,是C与.NET两个庞大生态之间一次… 2026/7/16 8:13:37
A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并 摘要:本文系统讲解如何利用Codex App的Review功能与GitHub PR工作流,实现从代码修改到安全合并的完整流程。涵盖Review面板深度使用、/review命令实战、GitHub Connector配置、PR描述撰写技巧,以及常见问题排查方法。通过多个实战案例和流程图,帮助开发者建立高效的AI辅助代… 2026/7/16 0:00:26
HAM未来路线图:下一代高可用迁移技术的发展方向与展望 HAM未来路线图:下一代高可用迁移技术的发展方向与展望 【免费下载链接】ham Based on the remote memory access capability and high bandwidth of the UB, deterministic duration virtual machine live migration is achieved, addressing planned downtime issu… 2026/7/16 0:04:27
月球是否是从地球分离出去的?——容度原理解释 月球是否是从地球分离出去的?——容度原理解释一、月球起源的“三大假说”与容度原理的重新审视月球起源的三大假说——捕获说(月球是太阳系中独立的星体,被地球引力捕获)、共生说(月球与地球同时从原始星云中形成&… 2026/7/16 0:06:27
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/16 3:47:53
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/14 5:09:41