news 2026/9/3 2:39:39

解决python--UI自动化iframe切换问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
解决python--UI自动化iframe切换问题

最近同事在学Python+selenium UI自动化,遇到一些问题,其中有个涉及iframe切换的问题,记录下方面有需要的人可以参考查阅。

从他问题描述和代码,代码思路清晰,自己打开https://www.126.com/ 网址

发现这个需要先点击登入密码,所以,他的代码少了一个动作,点击 密码登入 的操作,这个简单,加一个点击密码登入的代码操作就行

#点击 密码登入

driver.find_element_by_id("switchAccountLogin").click()

然后进入用户密码登入界面

【问题】

加上点击密码登入,进入用户密码登入页面,接着直接执行上面的代码,会提示元素定位不到

1、以为是元素没加载出来,加了延时sleep()、显式等待都不行2:然后想着是否定位出了问题

换了 xpath 定位 、 相对定位、 css定位、 find_elements_by_tag_name 、find_elements_by_class_name ,都不行,一样报找不到元素 。

没用 id 元素定位,因为 id是动态id,肯定不行

然后想到可能是iframe的问题,细心查看下,果然是:

用户登入输入框在不在当前iframe,需要切换到这个iframe里面才能操作

问题找到了:接就是怎么切换到这个iframe了,发现这个iframe元素没有 classs,有name但没值

id 也是动态的,怎么定位好呢??

ok,方法是有的, 我们在这通过 by_tag_name 方法定位到iframe进行切换

driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))

切换后,再执行,OK好了,元素能定位到了,输入框成功执行了输入操作

PS:附上代码

第25——26行完整代码:

#显式等待元素出现再执行操作

#element= WebDriverWait(driver,10).until(expected_conditions.visibility_of(driver.find_element_by_xpath('//*[@id="login-form"]/div/div[1]/div[2]/input')))

# element.send_keys("123")

以上有不同的定位方式, 元素定位,相对定位 ,xpath定位 等

PS:补充

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

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

HTML iframe嵌入外部TensorFlow演示页面

在线 TensorFlow 演示环境的嵌入式实践 在人工智能技术日益普及的今天,如何让开发者、学生或普通用户无需配置复杂环境就能直接体验深度学习模型的构建过程,已成为提升技术传播效率的关键挑战。一个常见的解决方案是:将预配置好的 TensorFlow…

作者头像 李华
网站建设 2026/9/3 0:47:36

GitHub托管数据集:加速TensorFlow-v2.9模型训练流程

GitHub托管数据集:加速TensorFlow-v2.9模型训练流程 在当今AI研发节奏日益加快的背景下,一个常见的痛点浮出水面:为什么同一个模型代码,在同事的机器上跑得好好的,到了自己环境却频频报错?依赖版本冲突、CU…

作者头像 李华
网站建设 2026/9/2 21:44:34

契约编程到底能多狠?看C++26如何彻底消灭非法状态

第一章:契约编程的革命性演进契约编程(Design by Contract)作为软件工程中确保程序正确性的核心范式,近年来经历了从理论到实践的深刻变革。通过将前置条件、后置条件与不变式嵌入代码逻辑,开发者能够在编译期或运行时…

作者头像 李华
网站建设 2026/9/3 0:01:43

Kanass快速上手指南:如何进行需求管理

上文介绍了如何快速创建第一个项目,本文将从项目的源头需求进行介绍,如何快速创建与管理需求。1、添加需求进入kanass项目,页面会自动定位到事项页面。点击添加事项->需求,填写需求标题与描述,选择需求类型等信息添…

作者头像 李华
网站建设 2026/9/3 0:03:36

2025年10款开源大模型UI界面,小白也能轻松本地部署

文章精选10款开源大模型UI工具,解决API密钥外泄、数据隐私问题。从Open WebUI企业级部署到Streamlit极简开发,覆盖聊天、写稿、Agent构建等场景。支持本地化部署、多模型切换、RAG功能,适合不同技术背景用户快速搭建大模型应用,文…

作者头像 李华