xpath相同标签怎么定位(一)
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定位??我们看看

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。