举个栗子

--------------------------------------------------------------------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>
<store1>
<book>
<title lang="eng">Harry Potter1</title>
<price>10</price>
</book>
</store1>
    <shool>    
<store1>
<book>
              <title></title>
              <title id="2"></title>

<title lang="eng">
Harry Potter2
</title>

<title lang="cn">哈利波特2</title>

<price>20</price>

</book>
</store1>
</school>
    <book>
<title lang="eng">Harry Potter3</title>
<price>30</price>
</book>
    <book>
<title lang="eng">Harry Potter4</title>
<price>40</price>
</book>
</bookstore>
-------------------------------------------------------------------------------------------

定义:

节点、属性、内容之后的关系,例如:

<title lang="cn">哈利波特2</title>

a.title是节点(元素);

b.lang是titile节点的属性;

c."cn"是lang的属性值;

d.“哈利波特2”是title节点的内容;

综上:一个节点包含了属性和内容两部分,属性和内容可以同时为空。

1、单斜线“/”:如果以“/”开始,那么该路径表示到一个节点的绝对路径,从根节点开始选取。 如:

选中bookstore根节点:  /bookstore

选中bookstore下的book子节点:  /bookstore/book

选中store1下的book子节点:   /bookstore/store1/book

2、双斜线“//”:如果以“//”开始,表示选中文档中所有满足“//”之后规则的节点(无论层级关系)。如:

选中所有book子节点(包括bookstore,store1和school/store1下的book节点):   //book

选中所有store1下的book子节点(包括store1和school/store1下的book节点):   //store1/book

3、星号“*”:表示选择所有由“*”之前的路径所定位的所有节点。如:

选中bookstore下所有子节点:/bookstore/*

选中文档中所有节点: //*

4、@:使用前缀@来指定节点的属性。如:

选中所有取名为lang的属性://@lang 

5、方括号"[]":进一步限定节点,用来查找某个特定的节点或者包含某个指定的值的节点。如:

选中storebook下第二个book节点:  /storebook/book[2]  或者  /storebook/book[last()]

选中storebook下前两个book节点:  /storebook/book[position()<3]

选中有id属性的title节点://title[@id]

选中属性不为空的title节点: //title[@*]

选中属性为空的title节点: //title[not(@*)]

6、属性值作为节点的筛选条件。如:

选中属性值:id为2的title节点://title[@id='2']

选中属性值:lang为cn的title节点: //title[@lang='cn']

7、分隔符“|”:将多个路径合并在一起(可以合并的路径数目没有限制)。如:

选择所有的title节点和price节点://title|//price

参考文献:http://www.w3school.com.cn/xpath/xpath_syntax.asp

xpath元素定位语法的更多相关文章

  1. css选择器用法,使用css定位元素,css和xpath元素定位的区别

    css定位元素 1.什么是css? CSS(Cascading Style Sheets)层叠样式表,是一种语言,用来描述html或者xml的显示样式.在css语言中有css选择器,在selenium ...

  2. python中通过selenium简单操作及xpath元素定位&轴定位

    浏览器的简单操作 # 导入webdriver模块 # 创建driver对象,指定Chrome浏览器 driver = webdriver.Chrome() # 窗口最大化 driver.maximiz ...

  3. KatalonRecorder系列(一):基本使用+XPath元素定位

    一.简介 Katalon Recorder是基于selenium的浏览器插件,支持火狐和chrome.可以录制web上的操作并回放,还能导入导出脚本. 二.安装 可在谷歌商店或者火狐附件组件中搜索并选 ...

  4. Selenium+Java(四)Selenium Xpath元素定位

    前言 关于Selenium元素定位,这是最后一篇博客. Xpath定位可以实现的功能 Selenium+Java(三)Selenium元素定位中讲的定位方式也可以实现,具体要用那种定位方式要根据自己的 ...

  5. xpath元素定位方法

    XPath 使用路径表达式来选取 XML 文档中的节点或者节点集.这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似.XPath 含有超过 100 个内建的函数.这些函数用于字符串值.数值 ...

  6. webdriervAPI(XPath元素定位)

    from  selenium  import  webdriver driver  =  webdriver.Chorme() driver.get("http://www.baidu.co ...

  7. appium xpath元素定位

    1.id定位 写法:driver.find_element_by_id("这里是resource-id") 2.name定位 name定位就是通过UI Automator工具查看的 ...

  8. 用XPath精确定位节点元素&selenium使用Xpath定位之完整篇

    在利用XSL进行转换的过程中,匹配的概念非常重要.在模板声明语句 xsl:template match = ""和模板应用语句xsl:apply-templates select ...

  9. 【WEB自动化】【第一节】【Xpath和CSS元素定位】

    目前自动化测试开始投入WEB测试,使用RF及其selenium库,模拟对WEB页面进行操作,此过程中首先面对的问题就是对WEB页面元素的定位,几乎所有的关键字都需要传入特定的WEB页面元素,因此掌握常 ...

随机推荐

  1. [状压DP]车II

    车 I I 车II 车II 题目描述 有一个 n ∗ m n*m n∗m的棋盘 ( n . m ≤ 80 , n ∗ m ≤ 80 ) (n.m≤80,n*m≤80) (n.m≤80,n∗m≤80)要 ...

  2. 201871030122-牛建疆 实验三 结对项目——《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 班级博客链接 作业要求链接 作业要求链接 我的课程学习目标 (1)体验软件项目开发中的两人合作,练习结对编程(Pair programming).(2)掌握Github协 ...

  3. 消息中间件-RabbitMQ集群和高可用

    多机多节点集群部署 一. 环境准备 准备三台安装好RabbitMQ 的机器,安装方法见 安装步骤 10.10.1.41 10.10.1.42 10.10.1.43 提示:如果使用虚拟机,可以在一台VM ...

  4. 一文带你更方便的控制 goroutine

    上一篇我们讲了 go-zero 中的并发工具包 core/syncx. 从整体分析来看,并发组件主要通过 channel + mutex 控制程序中协程之间沟通. Do not communicate ...

  5. Spring Security框架中踢人下线技术探索

    1.背景 在某次项目的开发中,使用到了Spring Security权限框架进行后端权限开发的权限校验,底层集成Spring Session组件,非常方便的集成Redis进行分布式Session的会话 ...

  6. Axure常用操作备忘

    目录 前言 技巧 边框重合 复制对象文本居中 复制粘贴样式 文本自适应 给图形添加连接点 导出图片无空白 前言 下面列出Axure画图过程中曾经遇到过的问题,备忘一下,避免别人也走弯路,法布施一下~ ...

  7. Spring Boot demo系列(六):HTTPS

    2021.2.24 更新 1 概述 本文演示了如何给Spring Boot应用加上HTTPS的过程. 2 证书 虽然证书能自己生成,使用JDK自带的keytool即可,但是生产环境是不可能使用自己生成 ...

  8. SOAP与REST API的区别

    之前一直想写些RESTful相关的文章,却一直未付诸行动.直到最近接手一个新的项目,对这块重新温习,乘此机会写些相关帖子.欢迎大家评论留言,如有错漏之处,也望各位大佬不令赐教. 话不多说,干活顶上. ...

  9. Python 极速入门指南

    前言 转载于本人博客. 面向有编程经验者的极速入门指南. 大部分内容简化于 W3School,翻译不一定准确,因此标注了英文. 包括代码一共两万字符左右,预计阅读时间一小时. 目前我的博客长文显示效果 ...

  10. 使用var和不使用var的区别(全局变量/局部变量)

    https://blog.csdn.net/czh500/article/details/80429133