news 2026/9/20 12:42:27

解决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/20 18:34:59

Python强大且流行的爬虫库!

Python能稳居爬虫开发首选语言,核心得益于丰富且强悍的爬虫类库加持,可轻松搞定从基础网页爬取到高难度反爬突破的所有需求。本文将为大家介绍6个强大且流行的Python爬虫库!1、BeautifulSoupBeautifulSoup是最常用的Python网页解析库之一,可将…

作者头像 李华
网站建设 2026/9/20 19:25:17

【高性能计算必看】C++中量子比特数组的最优内存排列方案

第一章:量子计算模拟中的C内存布局挑战 在开发高性能量子计算模拟器时,C的内存布局直接影响状态向量的存储效率与操作速度。量子态通常以复数向量表示,其维度随量子比特数指数增长,因此对内存连续性、对齐方式和缓存局部性提出了严…

作者头像 李华
网站建设 2026/9/20 6:11:35

Docker安装失败?常见错误排查指南(针对深度学习镜像)

Docker安装失败?常见错误排查指南(针对深度学习镜像) 在深度学习项目开发中,你是否曾遇到这样的场景:刚准备开始训练模型,执行 docker run 后却卡在“pulling”不动,或者容器启动后网页打不开、…

作者头像 李华
网站建设 2026/9/20 13:34:23

TensorFlow 2.9镜像中CUDA和cuDNN版本对应关系

TensorFlow 2.9 镜像中 CUDA 和 cuDNN 版本对应关系深度解析 在构建深度学习训练环境时,开发者常常面临一个看似简单却极易出错的问题:为什么代码没问题,但一运行就崩溃?为什么 GPU 显示可用,训练速度却和 CPU 差不多&…

作者头像 李华