python + selenium 跳坑之旅 (第一弹)
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,哪怕你再精通selenium,陪伴测试人员最多的还是定位问题。第一个坑:要定位的页面,出现html嵌套,也就是ifrmae。在html代码页面很直观的就能发现这个东西。实际就是在一个页面中引用了一个子
千家信息网最后更新 2025年02月03日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安全错误
数据库的锁怎样保障安全
服务器运输包装方案
北京麦盟软件开发
武汉企业软件开发服务
服务器上怎么找文件管理
提供java存取数据库能力的包是
聊城商城软件开发服务公司
服务器硬盘改为普通电脑用
网络安全运行日常记录
消防网络技术公司 招聘
软件开发工程师表扬信范文
自媒体网络安全审查
15万并发需要多少服务器
游戏服务器 场景管理
软件开发逐渐模块化
驻马店网络安全工程师课程培训
锡山区通用软件开发电子
华为数据服务器在哪个省
二本网络技术毕业工资
苹果m1做软件开发
中班网络安全教育ppt
服务器开vpn
仇小玲科技互联网
打开数据库提示错误
网络安全工作推进会
云服务器计算型和密集计算型
电子战仿真数据库技术
嵌入式软件开发考试题
db2数据库培训
施乐c75服务器报FF
河南省盛天网络技术有限公司