一、基本语法:
/:代表根节点,查找元素只能一级一级往下找
//: 查找子孙元素,不用考虑元素的层级
.:代表当前已经选中的节点
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、轴定位:就是通过已经找到的节点进行子节点、父节点、兄弟节点进行定位(用得比较少)

这篇博客详细介绍了XPath的基本语法,包括查找子孙元素、当前节点、父节点的选择,以及使用谓语进行条件筛选,如下标取值、属性筛选、文本匹配等。还涉及到了部分匹配的starts-with和contains方法,并提到了逻辑运算符和轴定位的概念,是理解XPath查询的强大工具。

3866

被折叠的 条评论
为什么被折叠?



