网络爬虫|Selenium——find_element_by_xpath()的几种方法

Xpath (XML Path Language),是W3C定义的用来在XML文档中选择节点的语言

一、从根目录/开始

有点像Linux的文件查看,/代表根目录,一级一级的查找,直接子节点,相当于css_selector中的>号

复制代码
/html/body/div/p 

二、根据元素属性选择

查找具体的元素,必须在前面输入标准开头//,表示从当前节点寻找所有的后代元素

复制代码
//div/*     div下面的所有的元素

//div//p     先在整个文档里查找div,再在div里查找p节点(只要在内部,不限定是否紧跟) ;等价于 css_selector里的('div p')

//div/p      p是div的直接子节点; 等价于 css_selector里的('div > p')

//*[@style]   查找所有包含style的所有元素,所有的属性要加@;  等价于 css_selector里的('*[style]')

//p[@spec='len']  必须要加引号;等价于 css_selector里的("p[spec='len']")

//p[@id='kw']    xpath中对于id,class与其他元素一视同仁,没有其他的方法

三. 选择第几个节点

复制代码
//div/p[2]   选择div下的第二个p节点 ;等价于css_selector里的div>p:nth-of-type(2)  符合p类型的第二个节点

//div/*[2]    选择div下第二个元素

//div/p[position()=2]   position()=2   指定第二个位置;  等价于上面的 //div/p[2] 

          position()>=2      位置大于等于2

          position()<2        位置小于2

          position()!=2    位置不等于2

//div/p[last()]    选择div下的倒数第一个p节点; last()倒数第一个

//div/p[last()-1]    选择div下的倒数第二个p节点;

//div/p[position()=last()]     倒数第一个

//div/p[position()=last()-1]     倒数第二个

//div/p[position()>=last()-2]     倒数第一个,第二个,第三个

四、组合选择

复制代码
//p | //button   选择所有的p和button,等价于css_selector里的 p, button

//input[@id='kw' and @class='su']     选择id=kw 并且 class=su的input元素

五、兄弟节点的选择

复制代码
相邻后面的兄弟节点的选择:following-sibling::    两个冒号

//div/following-sibling::p    选择div里相邻的p节点

相邻前面的哥哥节点的选择:preceding-sibling::后面加上元素标签        # 此方法在css_selector中没有

相邻前面的弟弟节点的选择   following-sibling:: 后面加上元素标签 

//div/preceding-sibling::p[2]   选择div里前面相邻的第二个节点,不加[2]选择的是前面的所有的p节点

六、选择父节点

复制代码
//p[@spec='len']/..    选择p节点的上层节点       此方法在css_selector中没有

//p[@spec='len']/../..   上层节点的上层节点

七、在webelement对象里面使用查找Xpath 查找时,必须使用.指明当前节点

复制代码
food = driver.find_element_by_id('food')

eles = food.find_elements_by_xpath(".//p")    .指明当前节点

eles = food.find_elements_by_xpath("..")   查找当前节点的父节点
相关推荐
集成显卡3 小时前
PlayWright | 初识微软出品的 WEB 应用自动化测试框架
前端·chrome·测试工具·microsoft·自动化·edge浏览器
互联网杂货铺4 小时前
完美搭建appium自动化环境
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
测试老哥10 小时前
Jmeter如何进行多服务器远程测试?
自动化测试·软件测试·功能测试·测试工具·jmeter·测试用例·性能测试
鱼鱼说测试11 小时前
postman基础
测试工具·postman
电商API_1800790524713 小时前
构建高效可靠的电商 API:设计原则与实践指南
运维·服务器·爬虫·数据挖掘·网络爬虫
程序员杰哥15 小时前
Postman常见问题及解决方法
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·postman
waterHBO16 小时前
python 爬虫工具 mitmproxy, 几问几答,记录一下
开发语言·爬虫·python
小堃学编程18 小时前
Selenium常用函数介绍
selenium·测试工具
羊米奇18 小时前
selenium-自动更新谷歌浏览器驱动
selenium·谷歌浏览器驱动更新
2501_9153738818 小时前
Selenium 和playwright 使用场景优缺点对比
selenium·测试工具