selenium 自动化测试工具实战项目(窗口切换)
介绍测试的系统白月黑羽网站的测试系统(白月SMS系统)测试内容点击【学习教程】链接跳转到白月黑羽网站获取此网站上的标题然后回到原来的系统。所涉及的知识点frame切换/窗口切换这个iframe元素非常的特殊在html语法中frame元素或者iframe元素的内容会包含一个被嵌入的零一份html文档。在我们使用selenium打开一个网页是我们的操作范围缺省是当前的html,并不包含被嵌入的html文档里面的内容。如果我们要操作被嵌入的html文档中的元素就必须切换操作范围到被嵌入的文档中。切换到Frame(3种方式)# 方式1通过索引切换第1个iframe从0开始driver.switch_to.frame(0)# 方式2通过 name 或 id 属性切换driver.switch_to.frame(frame-name)# nameframe-namedriver.switch_to.frame(frame-id)# idframe-id# 方式3通过 WebElement 对象切换最灵活推荐iframedriver.find_element(By.CSS_SELECTOR,iframe.class-name)driver.switch_to.frame(iframe)切回主文档/父级Frame# 切回父级 Frame如果有多层嵌套只向上退一层driver.switch_to.parent_frame()# 切回最外层的主文档彻底退出所有 iframedriver.switch_to.default_content()自动化测试程序fromseleniumimportwebdriverfromtimeimportsleepfromselenium.webdriver.common.byimportByfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasECclassRedirect:def__init__(self):self.driverwebdriver.Chrome()defLogin(self,username,password):self.driver.get(http://127.0.0.1/mgr/sign.html)usernameElementself.driver.find_element(By.ID,username)usernameElement.send_keys(username)sleep(2)passwordElementself.driver.find_element(By.ID,password)passwordElement.send_keys(password)sleep(2)# 点击登录submitElementself.driver.find_element(By.XPATH,//div[classcol-xs-12]/button)submitElement.click()sleep(2)print(登录成功~)defRedirectByhy(self):#mainWindow变量保存当前窗口的句柄mainWindowself.driver.current_window_handle#定位跳转的新窗口链接iframeself.driver.find_element(By.XPATH,//footer/div/a)hrefiframe.get_attribute(href)iframe.click()# 等待新窗口出现窗口数量增加WebDriverWait(self.driver,10).until(EC.number_of_windows_to_be(2))#切换到新窗口forhandleinself.driver.window_handles:ifhandle!mainWindow:self.driver.switch_to.window(handle)breakself.driver.get(f{href})sleep(2)titleElementsself.driver.find_elements(By.XPATH,//div[idnav-topics]/a)fortitleintitleElements:print(title.text)print(【本次测试结束】)if__name____main__:ReRedirect()Re.Login(byhy,88888888)Re.RedirectByhy()

相关新闻

学霸同款 9个AI论文写作软件测评:本科生毕业论文+开题报告高效工具推荐

学霸同款 9个AI论文写作软件测评:本科生毕业论文+开题报告高效工具推荐

在当前学术研究日益精细化、AI技术快速发展的背景下,本科生在撰写毕业论文和开题报告时,常常面临内容组织混乱、文献资料查找困难、格式规范不熟悉等多重挑战。为帮助学生更高效地完成学术写作任务,笔者基于2026年的实测数据与用户反馈&#…

2026/6/24 20:11:46 阅读更多 →
源荷不确定性 考虑源荷随机特征的热电联供微网优化matlab 王锐的《含可再生能源的热电联供型...

源荷不确定性 考虑源荷随机特征的热电联供微网优化matlab 王锐的《含可再生能源的热电联供型...

源荷不确定性 考虑源荷随机特征的热电联供微网优化matlab 王锐的《含可再生能源的热电联供型微网经济运行优化》 由风电机组、光伏电池、燃料电池、余热锅炉、燃气锅炉、蓄电池以及热电负荷构成的热电联供型微网系统,考虑风电、光伏功率以及热电负荷的随机性&#x…

2026/7/3 2:33:21 阅读更多 →
破解长周期Agent落地难题:双Agent架构+状态恢复+测试验证

破解长周期Agent落地难题:双Agent架构+状态恢复+测试验证

长周期Agent落地面临上下文丢失和过早完成的问题,核心是任务切分不当。解决方案包括:双Agent架构(Initializer负责任务拆解和进度跟踪,Coding负责具体实现);向量数据库实现跨会话状态恢复;端到端…

2026/5/17 3:11:31 阅读更多 →

最新新闻

HS工具箱深度评测:一站式在线工具平台如何提升开发与办公效率

HS工具箱深度评测:一站式在线工具平台如何提升开发与办公效率

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 你是不是也遇到过这样的场景:开发时突然需要把图片转成Base64编码,临时去搜在线工具,结果要么广告…

2026/7/6 11:29:59 阅读更多 →
数字图像处理 2.6 节:图像采样量化实战,Python 实现 8-bit 灰度图转换与伪轮廓分析

数字图像处理 2.6 节:图像采样量化实战,Python 实现 8-bit 灰度图转换与伪轮廓分析

数字图像处理实战:Python实现8-bit灰度图转换与伪轮廓分析当一张风景照片在显示器上呈现出明显的阶梯状色块时,我们看到的正是数字图像处理中典型的"伪轮廓"现象。这种现象源于图像量化过程中的信息损失,而理解其背后的原理对于从事…

2026/7/6 11:27:57 阅读更多 →
STM32L152RE与TPAFE0808构建多通道信号采集系统

STM32L152RE与TPAFE0808构建多通道信号采集系统

1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是常见需求。TPAFE0808作为8通道模拟前端芯片,配合STM32L152RE低功耗MCU,能够构建高效的多通道信号控制系统。这种组合特别适合需要同时监测多个传感器…

2026/7/6 11:25:53 阅读更多 →
4万星和5.7万星的两个框架,我焊在一起后它们封神了

4万星和5.7万星的两个框架,我焊在一起后它们封神了

第一个,AI 在「要构建什么」还没想清楚的时候就开始写代码。你跟它讨论需求,聊了三轮,它突然来一句「我来帮你实现吧」,然后一顿输出,写完一看,方向跑偏了。代码能跑,但不是你想要的。删了重来&…

2026/7/6 11:25:53 阅读更多 →
Transformer 架构 6 大核心组件拆解:从位置编码到多头注意力数学推导

Transformer 架构 6 大核心组件拆解:从位置编码到多头注意力数学推导

Transformer架构6大核心组件深度解析:从数学原理到工程实现引言:重新定义序列建模的里程碑2017年,一篇名为《Attention Is All You Need》的论文彻底改变了自然语言处理领域的游戏规则。Transformer架构的提出不仅终结了RNN/CNN在序列建模中的…

2026/7/6 11:25:53 阅读更多 →
如何用Squirrel-RIFE轻松实现专业级视频补帧:从入门到精通的完整指南

如何用Squirrel-RIFE轻松实现专业级视频补帧:从入门到精通的完整指南

如何用Squirrel-RIFE轻松实现专业级视频补帧:从入门到精通的完整指南 【免费下载链接】Squirrel-RIFE 效果更好的补帧软件,显存占用更小,是DAIN速度的10-25倍,包含抽帧处理,去除动漫卡顿感 项目地址: https://gitcod…

2026/7/6 11:23:51 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻