news 2026/4/16 13:07:49

解决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/4/16 11:08:36

PyTorch安装教程GPU与TensorFlow资源占用对比

PyTorch安装与TensorFlow资源占用深度对比 在现代AI研发环境中,选择合适的深度学习框架不仅关乎开发效率,更直接影响硬件资源的利用效率和系统的可维护性。尤其是在GPU资源昂贵且有限的背景下,开发者越来越关注不同框架在显存占用、训练速度和…

作者头像 李华
网站建设 2026/4/15 22:48:56

计算机毕设java惠农扶贫商城系统 基于Java技术的惠农助贫电商平台开发与设计 Java驱动的惠农扶贫在线交易系统研究与实现

计算机毕设java惠农扶贫商城系统l67819 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着互联网技术的飞速发展,电子商务平台已成为推动经济发展和促进社会公平的重…

作者头像 李华
网站建设 2026/3/29 6:33:03

清华源加速下载TensorFlow安装包,提升conda配置效率

清华源加速下载TensorFlow安装包,提升conda配置效率 在深度学习项目启动阶段,最让人沮丧的不是模型跑不通,而是环境还没搭好——当你输入 conda install tensorflow 后,看着终端里缓慢爬行的进度条,或是反复超时的网络…

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

一文掌握DataFlow!这款超好用的LLM数据处理框架,建议收藏!

给大家介绍一个处理LLM数据加工的框架–DataFlow,以模块化、可复用的系统级抽象为核心,提供近200个可重用算子和6个跨文本、数学推理、代码、Text-to-SQL等领域的通用管道,支持PyTorch风格的管道构建API,并通过DataFlow-Agent实现…

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

如何在Linux系统中正确安装git并同步TensorFlow项目代码

如何在Linux系统中正确安装git并同步TensorFlow项目代码 在深度学习项目的实际开发中,一个常见的场景是:你刚刚申请了一个基于 TensorFlow-v2.9 的云端镜像实例,准备开始训练模型。登录 Jupyter 后兴冲冲地写了几百行代码,结果重启…

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

基于Matlab的模糊运动滤波

基于matlab的模糊运动滤波拍糊的照片总让人头疼,相机抖动或物体快速移动产生的拖影就像给图像蒙了层纱。传统去模糊方法总带着股数学公式的冰冷感,今天咱们换个思路,用模糊逻辑给运动模糊做个"反向按摩"。先造个车祸现场练手——用…

作者头像 李华