python + selenium 跳坑之旅 (第一弹)
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,哪怕你再精通selenium,陪伴测试人员最多的还是定位问题。第一个坑:要定位的页面,出现html嵌套,也就是ifrmae。在html代码页面很直观的就能发现这个东西。实际就是在一个页面中引用了一个子
千家信息网最后更新 2025年12月04日python + selenium 跳坑之旅 (第一弹)
哪怕你再精通selenium,陪伴测试人员最多的还是定位问题。
第一个坑:
要定位的页面,出现html嵌套,也就是ifrmae。在html代码页面很直观的就能发现这个东西。实际就是在一个页面中引用了一个子页面。这样造成我们再用xpath或者css定位的时候直接找不到元素。这个时候我们需要用到一个新的东西来为她定位,其思路大体为:第一步,从父页面切换至子页面;第二步,在子页面定位元素;第三步,返回父页面(这个看个人需要,具体留在哪里需要结合实际)。
第一步的实现需要用到一个方法:switch_to_frmae。具体用法可以参考代码。在此,我必须提醒大家一句,switch_to_frmae不一定管用,因为版本问题,可能会需要变为switch_to.frmae。一个'_',一个'.',这个坑我爬了好久啊。
第二步就相对简单了,我们可以用firebug复制xpath或者css路径就可以了。值得注意的是,这次的路径是从子页面开始的,与父页面毫无关系,如果你想用id,class等等定位,应该也是可以的(当然我没试过,我对这句不负责)。
第三步,返回,当我们不需要在这个子页面中进行定位的时候需要退出,这要一个新的方法,
switch_to.default_content()。具体内容可以百度或者参照我的代码贴图。 至此,第一个坑跳出。 定位元素时,一定要注意element还是elements,一个单数,一个复数,意义真是差别太大了。当你find_element_by_id('p')只是一个id = 'p'的元素,find_elements_by_id('p')的时候其实是一堆id = 'p'组成的列表。切记自己想要一个还是多个元素,切记切记。我贴的代码,是我测试账号密码登录qq邮箱时候的问题,这次问题不在代码,可能是因为网络或者其他什么原因的问题,当我定位到qq邮箱'登录'按钮时候,click()一直出现'服务器繁忙的字样',开始我认为是点击太快,我设置time.sleep(3)后依然如此(隐形等待我没有试,不过有兴趣的同学可以试试),为了解决这个问题,无奈的我只能先click(),再time.sleep(3)后,再click(),居然奇迹般的成功了。
页面
定位
时候
问题
代码
元素
还是
东西
个子
实际
方法
路径
邮箱
测试
登录
繁忙
成功
直观
个人
也就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
我的世界二次元rpg服务器
传感器网络技术安全
浙江软件开发公司工资标准
6月1日网络安全法内容
网络安全法规定对公司的影响
分管领导检查网络安全情况报告
不属于代理服务器的主要功能
大连优闻软件开发公司
春节 网络安全 方案
数据库打开表报错1142
资金互助社的软件开发公司
威动服务器 pc
服务器外网访问
投影多媒体服务器配置
台服dnf没有服务器
强哥网络技术项目
网络技术发展的定律
软件开发资金报告
华为ai服务器哪里好做
为什么网络安全人才缺口大
半职网络技术中心
深圳医云互联网医疗科技
服务器输入用户名和密码后卡住
软件开发 收入何时确认
核对档案数据库文件是什么工作
数据库有用来存储图片的吗
软件开发招标评分标准
奉贤区自动化软件开发诚信合作
国家图书馆俄文数据库
农业科技互联网概念股