selenium无法定位元素问题

问题起因是这样的,我用selenium 完成一些网页的浏览和操作,通过id索引某个元素的时候提示找不到该元素,报错如下:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="tsn_inner"]

我用的是火狐浏览器(Firefox),不是谷歌浏览器(Chrome),因为今天来写的时候发现谷歌浏览器自动更新了,驱动版本跟不上。。。这浏览器我真服了。

言归正传,报上面这个错,我相信你已经看过不少博客,里面提供了很多种很全面的原因,包括页面加载未完成或者是因为使用iframe之类的原因,但是我的问题不属于上面任意一种。通过在不同网页测试发现,在第一次使用driver.get后能正常获取页面,当在这个页面模拟点击某个链接或按钮跳转到另一个页面时就查找不到任何元素了,百思不得其解。吃个饭洗个澡后 突然恍然大悟,我用的是火狐!!!会自动在新的标签页打开你的链接,也就是说此时的driver并没有指向新开页面的这个handle。

使用如下代码解决:

css 复制代码
driver.switch_to.window(driver.window_handles[-1])

注意,这个代码里直接索引到driver.window_handles里的最后一项,也就是最新的一个窗口里面,你可以根据窗口创建顺序正确所引导想要处理的标签页上,问题得到解决。

相关推荐
学习3人组14 小时前
Win11 使用 Proxifier 强制本地流量通过 Fiddler Classic 代理指南
前端·测试工具·fiddler
少云清15 小时前
【UI自动化测试】2_web自动化测试 _Selenium环境搭建(重点)
前端·selenium·测试工具·web自动化测试
少云清19 小时前
【UI自动化测试】1_web自动化测试 _测试工具选择
测试工具·web自动化测试
小妖66619 小时前
有替代postman的软件吗
测试工具·postman
御坂10101号21 小时前
Google Ads 转化凭空消失?问题藏在同意横幅的「时机」
前端·javascript·测试工具·网络安全·chrome devtools
德思特21 小时前
德思特方案 | 突破户外测试局限:德思特GNSS仿真方案赋能机器人高精定位
经验分享·测试工具·信息与通信·电子测量仪器
0思必得01 天前
[Web自动化] Selenium获取网页元素在桌面上的位置
前端·python·selenium·自动化
测试渣1 天前
测试左移实战:如何在需求阶段拦截80%缺陷?
selenium·pytest·测试覆盖率
0思必得02 天前
[Web自动化] Selenium浏览器复用
前端·python·selenium·自动化
Kingairy3 天前
PageSpeed Insights,Lighthouse与WebPageTest
测试工具