1、绝对路径:如果路径以斜线 / 开始,那么该路径就表示为一个绝对路径。
eg:/html/body/div
此路径是从网页起始标签开始一直到要定位的元素的路径,Xpath路径可能会非常长。且不便于维护。
2、相对路径:如果路径以双斜线 // 开头,该路径就表示为一个相对路径。表示选择所有满足双斜线之后规则的元素。
eg: //div/input 就会匹配出所有符合此条件的元素
3、结合属性值定位:@属性=“属性值”,表示选择所有满足此属性要求的元素,starts with(@属性,'属性值'),ends with(@属性,'属性值'),contains(@属性,'属性值')
eg: //div/input[@id="username"] 就会匹配出满足//div/input的条件且id=username的元素
4、结合索引定位元素:[索引值],索引从1开始,选择最后一个元素使用[last()]
eg: //div/input[1] 表示选择所有满足//div/input条件且是第一个input的元素
5、使用逻辑运算符(and or),结合属性值定位
eg: //div/input[@name="renderer" and @content="webkit"] 表示匹配出满足//div/input的条件且input的name=renderer 并且 content=webkit的元素
6、结合文本定位元素:
[text()="文本内容"],匹配出元素的文本等于文本内容的元素
[contains(text(),"文本值")],匹配出元素的文本包含文本值的元素
eg://div[text()="发布文章"]
//div[contains(text(),"文章")]
7.向上一级定位:当某一级元素的某个属性是唯一的或者文本唯一等,此时想要定位他的平级元素等就可使用此方式。使用 .. 表示向上一级
eg://label[@for="upload"]/../div