【Xpath】 xpath语法总结
节点选取
| 表达式 | 描述 | 用法 | 说明 |
|---|---|---|---|
nodename |
选取此节点的所有子节点 | div | 选取div下的所有标签 |
// |
从全局节点中选择节点,任意位置均可 | //div | 选取整个HTML页面的所有div标签 |
/ |
选取某个节点下的节点 | //head/title | 选取所有head标签下的titile标签 |
@ |
选取带某个属性的节点 | //div[@id] | 选择带有id属性的div标签 |
. |
当前节点下 | ./span | 选择当前节点下的span标签 |
谓语
| 表达式 | 用法说明 |
|---|---|
//head/meta[k]
|
选择所有head下的第k个meta标签 |
//head/meta[last()] |
选择所有head下的最后一个meta标签 |
//head/meta[position()<3] |
选择所有head下的前两个meta标签 |
//div[@id] |
选择带有id属性的div标签 |
//div[@id='u1'] |
选择所有拥有id=u1的div标签 |
通配符
| 通配符 | 描述 | 示例 | 结果 |
|---|---|---|---|
* |
匹配任意节点 | //div[@id='u1']/* |
选择所有id=’u1‘的div标签下的所有节点 |
@ |
匹配节点中的任意属性 | //meta[@*] |
选择所有拥有任意属性的meta标签 |
选取多个路径
多个xpath路径使用管道符|连接,效果等价于”或“
例如 "//div | //span" 选取所有的div和span标签
方法
| 方法名 | 描述 | 示例 | 结果 |
|---|---|---|---|
contains() |
判断一个字符串是否包含另一个字符串 | //div[contains(@id,"in")] |
选择所有id包含”in”的div节点 |
string(.) |
提取当前元素及其所有子元素的文本内容 | //div[string(.)="hellow"] |
选择所有文本内容为
”hello“的div节点
|
text() |
提取当前元素的文本内容 | //a[text()="haha"] |
选择所有文本为“haha”的a节点 |
last() |
返回当前节点集中最后一个节点的位置 | //li[last()] |
选择最后一个li节点 |
position() |
返回当前节点在同级节点中的位置 | //li[position()<3] |
选择前两个li节点 |
name() |
返回当前节点的名称 | //div[name()="content"] |
选择 名称为”content"的div节点 |
count() |
返回当前节点集中的节点数量 | //div[count(li)=3] |
选择包含三个li子节点的div节点 |
starts-with() |
判断一个字符串是否以另一个字符串开头 | //a[starts-with(@href,"http")] |
选择href属性以“http”开头的a节点 |
ends-with() |
判断一个字符串是否以另一个字符串结尾 | //a[ends-with(@href,"html")] |
选择href属性以“html”结尾的a节点 |
not() |
对当前表达式取反 | //div[not(@class)] |
选择没有class属性的节点 |
【Xpath】 xpath语法总结的更多相关文章
- Xpath基础语法学习
背景: 之所以学习Xpath,是因为在学习selenium定位页面元素,总是定位不到元素.为了更好的开展自动化测试,先学习下Xpath. 一:Xpath是什么. 1:Xpath是一门在XML文档中查找 ...
- 转载:XPath基本语法
出处:http://www.cnblogs.com/Miko2012/archive/2012/10/26/2740840.html XPath的语法最基本的节点之间用/,属性用@,还有几个函数记住了 ...
- XPath的语法
XPath 是XML的查询语言,和SQL的角色很类似.以下面XML为例,介绍XPath 的语法. <?xml version="1.0" encoding="ISO ...
- ios中XPath的语法
在XML的读写中,我们知道有Xpath的语法 1.定位节点:(/)代表绝对的路径,代表起始地位置.(//)表示文件中所有符合模式的元素都会被选出来,即使是处于树中不同的层级也会被选出来 2.KissX ...
- python爬虫xpath的语法
有朋友问我正则,,okey,其实我的正则也不好,但是python下xpath是相对较简单的 简单了解一下xpath: XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML ...
- xpath的chrome插件安装,xpath基本语法
xpath插件安装: 注意:提前安装xpath插件 (1)打开chrome浏览器 (2)点击右上角小圆点 (3)更多工具 (4)扩展程序 (5)拖拽xpath插件到扩展程序中 (6)如果crx文件失效 ...
- [Python 练习爬虫] XPATH基础语法
XPATH语法: // 定位根标签 / 往下层寻找 /text() 提取文本内容 /@xxx 提取属性内容 Sample: import requests from lxml import etree ...
- Selenium2+python自动化-xpath定位语法
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语 ...
- XPATH基本语法
1.XPATH与自动化之间的关系 1.XPATH是一门在XML文档中查找信息的语言.XPATH可用来在XML文档中对元素和属性进行遍历. 2.XPATH是用来选择"节点"的一种基于 ...
- Python爬虫基础讲解(七):xpath的语法
xpath语法 XPath使用路径表达式来选取XML文档中的节点或者节点集.这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似. 下面列出了最有用的表达式: 在下面的表格中,我们已列出了一 ...
随机推荐
- 创建function函数sys_guid时报错
创建function函数sys_guid时报错 执行下面的命令 show variables like 'log_bin_trust_function_creators';set global log ...
- 安卓自动化查看包名和activity名的方法
1,cmd下,adb shell "dumpsys window | grep mCurrentFocus" 2,CMD中输入adb logcat ActivityManager: ...
- Pandas嵌套词典解析或取值
# tribe列只保留name 值 df['tribe']=df['tribe'].apply(lambda x:eval(x)['name']) # tribe 列全部项目展开 df=df['con ...
- IBM 双队列管理器,双向传输
1. 建立队列管理器 建立[test01][test02]两个队列管理器,一直下一步即可,端口号不能一致(需要记住设置的端口号,后面会用到) [test01]端口号 1414 [test02]端口号 ...
- Caused by: java.lang.NoSuchMethodError
ERROR [localhost-startStop-1] - Context initialization failedorg.springframework.beans.factory.BeanD ...
- 在 Sitecore 里使用 Solr 搜索 SortOrder 关联的 Item
在 C# 使用 Solr 搜索 sitecore 的配置信息文件可直接丢进 <Instance>\App_Config 下,sitecore 会自动检测配置文件更新并加载到内存中. 通常情 ...
- MySQL基础随笔记
[1]SQL语言入门 我们都知道,数据库管理人员(DBA)通过数据库管理系统(DBMS)可以对数据库(DB)中的数据进行操作,但具体是如何操作的呢?这就涉及到我们本节要讲的SQL语言.SQL ...
- 什么是mvvm?简单介绍它的概念、原理及实现
1.MVVM的概念 model-view-viewModel,通过数据劫持+发布订阅模式来实现. mvvm是一种设计思想.Model代表数据模型,可以在model中定义数据修改和操作的业务逻辑;vie ...
- 分布式 WEB应用中Session(会话管理)的变迁之路
一.Session 介绍 Session 一词直译为 "会话",意指有始有终的一系列动作/消息.Session 是 Web 应用蓬勃发展的产物之一.在 Web 应用中隐含有&quo ...
- 抽象同步队列AQS原理和实践
AQS简述 AQS是一个FIFO的双向队列,队列元素类型为Node(也就是Thread).AQS有一个state属性,ReentrantLock可以用来便是当前线程获取锁的可重入次数:对于samaph ...