一、绝对路径
/
⚠️需要一级一级定位,如果前端元素发生变化,会找不到元素,所以此方法通常不用
二、相对路径
//
⚠️不需要层级定位,通过查找子元素定位
- *(通配符表示匹配所有的元素)
- .(表示当前节点)
- …(表示当前节点的父节点)
- 条件:用[]表示
1⃣️下标:使用xpath下标,从1开始(使用xpath时用下标定位会有坑,可以搜索出好几个,可以使用括号调整优先级,例如:(//input)[1]
2⃣️属性:用@表示,例如要找标签为input的属性为is,属性值为kw //input[@id=“kw”]
如果要通过文本定位 //a[text()=“百度”]
(1)匹配文本内容以xx开头://a[starts-with(text(),“百”)]
(2)匹配标签属性://a[starts-with(@href,“http://www.baidu”)]
(3)包含匹配
//input[contains(@value,”百度”)]
//input[contains(text(),”百度”)]
3⃣️多个属性用逻辑运算符进行定位
与活或非(and or not)例如如图上所示,type属性有多个,但是name属性不同,可以使用 //input[@type=“hidden”and @name=“rsv_spt”]
⚠️常用and
三、轴定位(以一个标签为圆心,找父节点子节点)工作中一般不用