当前位置: 首页 > news >正文

学习Python中Selenium模块的基本用法(11:弹窗处理)

  网页中常用的弹窗包括警告框、提示框、确认框等类型(这三种弹窗的详细介绍见参考文献7),使用Selenium模块处理弹窗的话,首先要能找到弹窗,然后再获取弹窗信息或处理弹窗。
网页中的弹窗,要么是在页面加载后或者其它触发条件下自动弹出,要么是点击按钮或链接时弹出,可以调用switch_to.alert函数获取弹窗对象,主要包括以下2种方式:
1)通过第三方定时库,如果是页面加载后自动弹窗,则使用time.sleep函数等待数秒后调用switch_to.alert函数获取弹窗对象,如果是点击按钮或链接后弹窗,则页面加载后找到按钮或链接元素,模拟点击操作弹窗,然后调用switch_to.alert函数获取弹窗对象;
2)调用Selenium模块的显式等待功能等待弹窗并获取弹窗对象,由于还没有学习Selenium模块的等待功能用法,本文采用第一种方式获取弹窗对象。

  弹窗对象相关的属性和函数如下表所示:

序号名称说明
1text属性,获取弹窗文本
2accept函数,模拟点击确定按钮
3dismiss函数,模拟点击取消按钮
4send_keys函数,向提示框的输入框输入文本

  Selenium官网帮助文档的警告框页面(参考文献8)包括上述三类弹窗,本文基于该页面验证Selenium模块的弹窗处理方式。
首先是警告框,如下面代码所示,通过链接文本找到弹窗链接,点击链接弹窗后等待几秒再获取弹窗对象,最后模拟点击确定按钮关闭弹窗。

driver = webdriver.Chrome()
driver.get("https://www.selenium.dev/zh-cn/documentation/webdriver/interactions/alerts/")time.sleep(5)element = driver.find_element(By.LINK_TEXT, "查看样例警告框")
element.click()time.sleep(3)alert = driver.switch_to.alert
print("弹窗内容:"+alert.text)
alert.accept()

  接着是确认框,如下面代码所示,通过链接文本找到弹窗链接,点击链接弹窗后等待几秒再获取弹窗对象,最后模拟点击取消按钮关闭弹窗。

driver = webdriver.Chrome()
driver.get("https://www.selenium.dev/zh-cn/documentation/webdriver/interactions/alerts/")time.sleep(5)element = driver.find_element(By.LINK_TEXT, "查看样例确认框")
element.click()time.sleep(3)alert = driver.switch_to.alert
print("弹窗内容:"+alert.text)
alert.dismiss ()

  最后是提示框,如下面代码所示,通过链接文本找到弹窗链接,点击链接弹窗后等待几秒再获取弹窗对象,发送测试文本,最后模拟点击确定按钮关闭弹窗。

driver = webdriver.Chrome()
driver.get("https://www.selenium.dev/zh-cn/documentation/webdriver/interactions/alerts/")time.sleep(5)element = driver.find_element(By.LINK_TEXT, "查看样例提示框")
element.click()time.sleep(3)alert = driver.switch_to.alert
alert.send_keys("Hello World!")
print("弹窗内容:"+alert.text)time.sleep(3)alert.accept()

参考文献:
[1]https://www.selenium.dev/zh-cn/
[2]https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/
[3]https://blog.csdn.net/kk_lzvvkpj/article/details/148610502
[4]https://registry.npmmirror.com/binary.html?path=chromedriver/
[5]https://chromedriver.chromium.org/
[6]https://blog.csdn.net/bbppooi/article/details/146242954
[7]https://blog.p2hp.com/archives/9158
[8]https://www.selenium.dev/zh-cn/documentation/webdriver/interactions/alerts/

http://www.dtcms.com/a/357948.html

相关文章:

  • LangGraph结构化输出详解:让智能体返回格式化数据
  • Docker核心概念与镜像仓库操作指南
  • AIGC应用与实践- 实验1:采用Markdown转换成WORD文档方式
  • 基于SpringBoot的流浪动物领养系统【2026最新】
  • Java函数式编程之【流(Stream)性能优化】
  • Docker(自写)
  • Netty 心跳与链路保活机制详解:保证高并发环境下的稳定连接
  • Web 聊天室消息加解密方案详解
  • Java面试-spring boot框架
  • 音视频学习(六十):H264中的PPS
  • 【C语言】字符函数与字符串函数实战:用法原理 + 模拟实现
  • VMware 设置 Ubuntu 虚拟机桥接模式完整教程
  • 音视频学习(六十二):H264中的SEI
  • 【Qt开发】按钮类控件(一)-> QPushButton
  • Ethan独立开发新品速递 | 2025-08-30
  • 【读书笔记】《最好的告别》
  • Git 安装与国内加速(配置 SSH Key + 镜像克隆)
  • 系统质量属性
  • 【瑞吉外卖】手机号验证码登录(用QQ邮件发送代替)
  • wpf之附加属性
  • 学习嵌入式第四十一天
  • 【电力电子】MCP602运算放大器测交流电压(120VAC/230VAC),带直流偏置2.5V,比例:133.5:1
  • 【杂谈】-混沌理论能否赋予机器差异化思考能力?
  • 华为 HarmonyOS 代表未来
  • 初学者如何学习项目管理
  • Citrix 零日漏洞自五月起遭积极利用
  • 爱普生L3255打印机故障记录
  • Pregel 与 LangGraph:从分布式图计算到现代 AI 智能体的架构演进与 API 深度解析
  • 多教师语言感知知识蒸馏:提升多语种语音情绪识别的新方法
  • 区块链存证技术:如何让电子证据成为“铁证