转载 selenium xpath定位
2022/5/26 23:20:54
本文主要是介绍转载 selenium xpath定位,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、问题提出
1、我们做web自动化一般就是增删改,验证基本功能流程。比如:添加一个用户,添加完了对比数据库字段,一致则案例通过。
2、举例:我们系统后台是用vue.js框架做的,现在在添加区域管理员的时候遇到了一模一样的input标签。如下图所示。
二、问题解决过程
1、这几个input标签是一模一样的,1个 div里面有1个 div和1个 label,div里面又有2个div和input,其中的1个div才有input。通过细心发现,和label同级的div也是一样的,但是label标签是根据for属性做了区分,比如:for="username",for="mobile"这下就好办了。可以先通过label定位到它的兄弟div,然后div里面只有一个input标签,所以直接定位这个input标签就好了。
最终的xpath如下:
//label[@for="username"]/following-sibling::div//input
在谷歌浏览器调试一下,OK
跳转:
成功。
在pycharm里面发送一个AA试一下。、
代码:
- #输入用户名
- browser.find_element_by_xpath('//label[@for="username"]/following-sibling::div//input').send_keys("AA")
运行看看结果
大功告成!!!
2、分析如果遇到相同的标签,那么我们要看看它的兄弟是不是一样的,如果兄弟不一样,那就由兄弟去定位。
如果兄弟一样,那再上一层找爸爸。依次类推。
我们看看语法:
获取弟节点-following-sibling::
获取兄节点:preceding-sibling::
获取父节点以及混合应用:parent::
三、总结
元素定位是自动化测试的核心,而xpath能解决99%的定位问题,所以,掌握xpath编写,自动化测试成功80%。
有疑问一起留言交流!
2020年9月下午更新
现在又遇到相同的button。兄弟标签一样,爸爸也一样,爸爸的爸爸的爸爸。。。。
现在我们想定位下面这个button
思路:第一、通过class定位??我们看看
这边有一模一样的结构,不行
第二、看看这两个的div爸爸有啥不同,果然找到。不对,爸爸也是一样的,爸爸的爸爸也是一样的。。。
第三、慢慢向上查找,发现
这个div祖先不一样,所以通过这个可以确定下来这个button了
xpath:
//div[@aria-label="添加区域管理员"]//button[@class="el-button el-button--primary"]
调试
定位成功。
这篇关于转载 selenium xpath定位的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了