转载 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定位的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-04敏捷管理与看板工具:提升研发、设计、电商团队工作效率的利器
- 2025-01-04智慧养老管理工具如何重塑养老生态?
- 2025-01-04如何打造高绩效销售团队:工具与管理方法的结合
- 2025-01-04解决电商团队协作难题,在线文档工具助力高效沟通
- 2025-01-04春节超市管理工具:解锁高效运营与顾客满意度的双重密码
- 2025-01-046种主流销售预测模型:如何根据场景选用最佳方案
- 2025-01-04外贸服务透明化:增强客户信任与合作的最佳实践
- 2025-01-04重新定义电商团队协作:在线文档工具的战略作用
- 2025-01-04Easysearch Java SDK 2.0.x 使用指南(三)
- 2025-01-04百万架构师第八课:设计模式:设计模式容易混淆的几个对比|JavaGuide