news 2026/4/23 15:18:53

Selenium自动化测试之弹窗处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Selenium自动化测试之弹窗处理

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

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(r'http://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(r'http://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(r'http://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()

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 9:13:37

C++中constexpr 与 explicit关键字使用详解

概述 constexpr:声明“该实体可以在编译期求值”,随着 C 标准被逐步放宽,现在能在更多场景写编译期函数/构造器/变量。C20 还新增了 consteval(强制编译期)与 constinit(强制常量初始化)。expli…

作者头像 李华
网站建设 2026/4/23 15:02:44

老网工私藏的12个CMD神操作,效率拉满

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部在日常工作中,命令行工具是咱不可或缺的助手。通过命令行,可以快速诊断和解决网络问题,优化网络配置&#xff0…

作者头像 李华
网站建设 2026/4/23 14:59:56

NVIDIA设置疑难全攻略:从驱动到性能优化

NVIDIA设置常见问题分类 显卡驱动安装与更新问题 分辨率和刷新率异常 游戏性能优化与帧率不稳定 多显示器配置冲突 3D设置与垂直同步异常 驱动相关故障排除 检查驱动版本与显卡型号匹配性 使用DDU工具彻底卸载旧驱动 安全模式下安装最新WHQL认证驱动 禁用Windows自动驱动更新功…

作者头像 李华
网站建设 2026/4/22 20:41:35

陀螺与加表数据allan方差分析及其五系数拟合结果研究

陀螺和加表allan方差分析,并拟合出5个系数结果。实验室里刚测完一批光纤陀螺的原始数据,老张甩给我个U盘说:"这组加表和陀螺数据赶紧跑个Allan方差,下班前把拟合系数给我"。我看了眼墙上的挂钟——得,又得跟…

作者头像 李华
网站建设 2026/4/23 3:44:20

从零构建量子模拟器扩展,手把手教你打造专属开发工具

第一章:量子模拟器的 VSCode 扩展开发Visual Studio Code(VSCode)作为现代开发者广泛使用的代码编辑器,其强大的扩展生态系统为特定领域工具的集成提供了便利。通过开发定制化扩展,开发者可以在编辑器内直接构建、调试…

作者头像 李华
网站建设 2026/4/23 14:31:44

Wan2.2-T2V-A14B支持灯笼点亮与节日灯光秀动态编排

Wan2.2-T2V-A14B支持灯笼点亮与节日灯光秀动态编排 在春节的江南古镇,夜幕低垂,青石板路泛着微光。一串红灯笼从屋檐下缓缓亮起——不是同时,而是像被一只无形的手轻轻拨动,由近及远、自左向右,如波浪般蔓延开来。暖黄…

作者头像 李华