Web自动化元素定位之xpath定位详解

Web自动化常见的定位方式

为什么要学习定位

1.让程序操作指定元素,就必须先找到此元素

2.程序不像人类用眼睛直接定位到元素

  1. webDriver提供了八种定位元素的方式

定位方式总结

1.id、name、class_name、tag_name:根据元素的标签或元素的属性来进行定位
2.link_text、partial_link_text:根据超链接的文本来进行定位(a标签)
3.xpath:为元素路径定位--重点4.cSs: 为css选择器定位(样式定位)


元素定位

ID定位

说明:HTML规定id属性在整个HTML文档中必须是唯一的,id定位就是通过元素的id属性来定位元素;
前提:元素有id属性
id定位方法: find_element_by_id0
需求:打开百度界面(https://www.baidu.com/),通过id定位,输入信息,点击百度的钮

ID定位

tag _name标签定位

注:由于HTML源码中,经常会出现很多相同的的标签名,所以一般不使用该定位方式

tag _name是通过标签名称来定位的,如a标签
https://hao.uisdc.com/

元素定位

link text定位

说明:link_text定位于前面4个定位有所不同,它专门用来定位超链接文本(文本值)
前提:定位的元素是链接标签(a标签)
link_text定位方法: find_element_by_link_text()
打开百度首页,通过link_text(链接文本)定位到【新闻】按钮,并进行点击操作

元素定位

元素组定位

元素组定位方式: find_elements_by_xxx

作用:
1.查找返还定位所有符合条件的元素
⒉.返还的定位元素格式为列表格式

说明:
列表数据格式的读取需要指定下标(下标从0开始)
案例要求:打开百度页面
https://www.baidu.com/,通过元素组定位>定位: "//*[@id='s-top-left']/a"

元素定位

xpath定位

xpath概述:--位置定位(路径方式)

1.xpath即为xml path的简称,它是一种用来确定XML文档中某部分位置的语言。
2.HTML可以看做是XML的一种实现,所以selenium用户可以使用这种强大的语言在web应用中来定位元素3.xpath为强大的语言,是因为它有非常灵活的定位策略。

定位方法: find_element_by_xpath()

xpath定位策略(方式)

1.路径定位--绝对路径、相对路径
⒉利用元素属性定位
3.层级与属性结合定位
4.属性与逻辑定位结合

路径定位

绝对路径:从最外层元素到指定元素之间所有经过元素层级路径;如/html/body/div/p[2]

提示:
1.绝对路径是以/开始
⒉.通过浏览器查看元素属性,右击复制xpath快速生成

相对路径:从第一个符合条件元素开始(一般配合属性来区分)﹔如//input[@id='kw']

提示:
1.相对路径以//开始
⒉.通过浏览器查看元素属性,右击复制xpath快速生成

xpath表达式描述及格式

元素定位

xpath通过属性定位

xpath通过该元素已有的属性进行定位,如id, name等等


元素定位

xpath通过text文本定位元素

当前元素没有id.name这些属性,如何定位?
打开商城界面(http:llshopxo.hctestedu.com/index.php?s=/indexluser/logininfo.html),通过
xpath定位邮
箱登录标签

定义元素:ll*[text()="邮箱验证码"]


元素定位

xpath通过层级定位元素

要找到的元素没有属性,但是它的父级有;
url = "http:llshopxo.hctestedu.com/index.php?s=/index/userllogininfo.html"
示例:lI*[@class='login-top']/a


元素定位

xpath逻辑运算

解决元素之间相同属性重名问题;
示例: 'll*[text()="注册" and @class="am-btn am-btn-secondary am-btn-xs am-radius"]'
http:/llshopxo.hctestedu.com/index.php?s=/index/userlogininfo.html


元素定位

技术栈

  • Python
  • selenium/appium
  • POM分层思想
  • DDT
  • zmail
  • logging
  • yaml/excel
  • requests

软件测试全栈工程师 公号:程序员一凡.png

1、点赞。防止以后找不到,想看的时候,在自己主页就能找到了,很方便;
2、关注我。让我们成为长期关系,下一篇文章会分享更多的硬核干货;
3、本文章学习资源,均可以免费分享。

文章首发于微信公众号:程序员一凡

一个用心码了这么多文字的人,往往渴望得到大家的认可。如果你觉得这篇文章对你有帮助,双击屏幕,给我点个赞呀!

你可能感兴趣的:(Web自动化元素定位之xpath定位详解)