news 2026/4/16 13:20:59

Selenium切换窗口、框架和弹出框window、ifame、alert

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Selenium切换窗口、框架和弹出框window、ifame、alert

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

一、切换窗口

#获取打开的多个窗口句柄 windows = driver.window_handles #切换到当前最新打开的窗口 driver.switch_to.window(windows[-1]) #最大化浏览器 driver.maximize_window() #刷新当前页面 driver.refresh()

二、切换框架frame

如存在以下网页:

<html lang="en"> <head> <title>FrameTest</title> </head> <body> <iframe src="a.html" id="frame1" name="myframe"></iframe> </body> </html>

可以使用4中方式切换frame

#1.用frame的index来定位,第一个是0 driver.switch_to.frame(0) #2.用id来定位 driver.switch_to.frame("frame1") #3.用name来定位 driver.switch_to.frame("myframe") #4.用WebElement对象来定位 driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))

三、切换alert()提示框

#1. 获取alert driver.switchTo().alert() #2.点确定 alert.accept() #3.点取消 alert.dismiss() #4.获取alert的内容 alert.getText()

以下是使用中的一个例子:

alert = driver.switch_to.alert #切到弹出框 print(alert.text) a=alert.text alert.accept() return '添加成功!' in a

在Selenium中,可以使用以下方法来切换窗口、框架和弹出框:

切换窗口:

  • driver.switch_to.window(window_handle):通过窗口句柄(window handle)切换到指定的窗口。可以使用driver.window_handles获取所有窗口的句柄,然后通过索引或其他方式选择要切换的窗口。

切换框架(iframe):

  • driver.switch_to.frame(frame_reference):通过框架的名称或索引切换到指定的框架。可以使用框架的名称或索引来定位到框架,并切换到它。

处理弹出框(alert):

  • driver.switch_to.alert:切换到当前页面上的警告框(alert)。可以使用accept()接受警告框,点击确定按钮;使用dismiss()关闭警告框,点击取消按钮;使用send_keys(text)向警告框发送文本。

注意事项:

  • 切换窗口和框架时,需要确保当前焦点在正确的上下文中。You可能需要先切换到默认内容,即主页面,然后再进行窗口或框架的切换。
  • 在处理弹出框之前,需要等待弹出框的出现。可以使用显式等待来等待弹出框的出现。

示例代码:

python # 切换窗口 main_window = driver.current_window_handle # 获取当前窗口句柄 new_window = driver.window_handles[1] # 假设有多个窗口,选择第二个窗口 driver.switch_to.window(new_window) # 切换到新窗口 # 切换框架 driver.switch_to.frame("frame_name") # 通过框架名称切换 driver.switch_to.frame(0) # 通过索引切换 # 处理弹出框 alert = driver.switch_to.alert alert.accept() # 点击确定按钮 alert.dismiss() # 点击取消按钮 alert.send_keys("text") # 发送文本

以上是在Selenium中切换窗口、框架和处理弹出框的方法。根据具体情况,你可以选择适当的方法来实现你的测试需求。

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

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

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

AI核心知识57——大语言模型之MoE(简洁且通俗易懂版)

MoE 是 Mixture of Experts&#xff08;混合专家模型&#xff09;的缩写。它是目前解决大模型 “既要变得超级聪明&#xff08;参数量大&#xff09;&#xff0c;又要跑得快&#xff08;推理成本低&#xff09;” 这个矛盾的核心架构技术。目前最顶尖的模型&#xff0c;如 GPT-…

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

S32K3启动RAM数据初始化

想要搞清这个问题&#xff0c;需要重点研究startup_cm.s文件。启动时&#xff0c;RAM数据的初始化主要包括两个过程&#xff1a;RAM区域初始化&#xff08;数据清0&#xff09;&#xff1b;有初始值的变量需要从flash中加载到ram中。RAM区域初始化这一段代码由汇编实现&#xf…

作者头像 李华
网站建设 2026/4/16 10:17:54

【工业互联网Agent性能跃迁指南】:3步打造高精度实时分析系统

第一章&#xff1a;工业互联网Agent数据分析的核心价值在工业互联网体系中&#xff0c;Agent作为部署于设备端的数据采集与执行单元&#xff0c;承担着连接物理世界与数字系统的桥梁作用。通过对Agent收集的运行状态、环境参数、操作日志等多维数据进行深度分析&#xff0c;企业…

作者头像 李华
网站建设 2026/4/16 10:17:12

基于单片机的医院病房无线呼叫系统

一、系统整体架构设计 基于单片机的医院病房无线呼叫系统采用“终端-中继-主机”三层架构&#xff0c;实现病房与护士站的实时通信。终端层为分布在各病房的呼叫分机&#xff0c;每个分机配备单片机&#xff08;STC89C52&#xff09;、按键、LED指示灯与无线发射模块&#xff0…

作者头像 李华
网站建设 2026/4/16 11:58:23

行人室内定位系统电路设计

一、系统整体电路架构 行人室内定位系统电路采用“感知-处理-通信-供电”四模块集成架构&#xff0c;实现厘米级定位精度与低功耗运行。感知模块包含UWB&#xff08;超宽带&#xff09;测距电路与惯性测量单元&#xff08;IMU&#xff09;&#xff0c;UWB电路采用DW1000芯片搭建…

作者头像 李华
网站建设 2026/4/16 11:59:08

高级树模型与可解释机器学习:随机森林、贝叶斯方法及异质性效应建模

在多源观测数据爆炸式增长的今天&#xff0c;如何从复杂、高维、非线性的自然系统中提取可靠知识&#xff0c;已成为地球科学、生态学、环境工程与公共健康等领域科研工作者的核心挑战。传统的统计模型常受限于线性假设与变量交互建模能力&#xff0c;而“黑箱”深度学习又难以…

作者头像 李华