转载 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-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性