一、基本语法:
/
:代表根节点,查找元素只能一级一级往下找
//
: 查找子孙元素,不用考虑元素的层级
.
:代表当前已经选中的节点
drv = driver.find_element_by_xpath("xxx")
# 从上面已经查到的元素向下查找,要用`.`
drv.find_element_by_xpath("./xxx")
..
:代表当前节点的父节点
*
:通配符(表示匹配所有的元素)
二、谓语(条件):通过中括号来表示
1、下标取值:[index]
我们取标签的第一个:
我们需要用括号:(//span)[1]
2、通过属性筛选:[@属性名=属性值]
//span[@class="soutu-hover-tip"]
或者//*[@class="soutu-hover-tip"]
:表示筛选属性名class为soutu-hover-tip的元素
3、通过文本元素进行定位(标签对之间的内容):[text()=‘文本值’]
//a[text()="新闻"]
4、部分匹配:
starts-with:匹配是否以xx开头
匹配文本://a[starts-with(text(),"新")]
:匹配a标签下,文本以“新”字开头的元素
匹配属性://a[starts-with(@href,"http://news")]
:匹配a标签下,属性href的值以http://news开头的元素
contains:包含匹配
//a[contains(text(),"新")]
:表示a标签中包含文本"新"
的元素
5、逻辑运算符(多个条件进行查询)
and:通过多个条件进行筛选
6、轴定位:就是通过已经找到的节点进行子节点、父节点、兄弟节点进行定位(用得比较少)