python + selenium 跳坑之旅 (第一弹)
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,哪怕你再精通selenium,陪伴测试人员最多的还是定位问题。第一个坑:要定位的页面,出现html嵌套,也就是ifrmae。在html代码页面很直观的就能发现这个东西。实际就是在一个页面中引用了一个子
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
精品咖啡豆
互联网科技财经
互联网通讯科技
与互联网科技公司
互联网科技股票
中国互联网科技发展
互联网科技logo设计
多迪互联网科技有限公司
阿里巴巴算科技企业还是互联网
彤创互联网科技有限公司
互联网科技公司有风险吗
东莞新华互联网科技学校
徐州市互联网科技有限公司
合肥互联网科技公司公章图片
皮皮虾互联网科技有限公司
工业互联网科技成果转化
福建互联网展示科技馆设计
福州德业互联网科技
数字互联网科技有限公司
六子台科技互联网展会
互联网黑科技
互联网科技园
科技互联网龙头
科技创新与互联网经济
互联网金融与金融科技
互联网 科技创业
唐信互联网科技 大连
碳银互联网科技有限公司
佩信高科技互联网
晓花互联网科技有限公司网址