XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点
http://www.w3school.com.cn/example/xmle/books.xml
节点(Node):
<bookstore> (文档节点)
<author>J K. Rowling</author> (元素节点)
 lang="en" (属性节点)
基本值(或atomic value):
基本值是无父或无子的节点。
例子:J K. Rowling, "en“
父节点(parent):
每个元素以及属性都有一个父
例子:book 元素是 title、author、year 以及 price 元素的父

 
 
XML 文档是被作为节点树来对待的。
树的根被称为文档节点或者根节点
Star--》
//代表从目录中任意位置查找:相对路径查找,一般多用相对路径查找,可以找到变化结构的元素
/必须顺序从一个目录结构查找绝对路径:/bookstore/
 
//* 查找全部
parent::* 表示当前节点的父节点元素
ancestor::* 表示当前节点的祖先节点元素
child::* 表示当前节点的子元素  /A/descendant::* 表示A的所有后代元素
self::* 表示当前节点的自身元素
ancestor-or-self::* 表示当前节点的及它的祖先节点元素
descendant-or-self::* 表示当前节点的及它们的后代元素
following-sibling::* 表示当前节点的后序所有兄弟节点元素
preceding-sibling::* 表示当前节点的前面所有兄弟节点元素
following::* 表示当前节点的后序所有元素
preceding::* 表示当前节点的所有元素
//title[@*] ---表示所有含有属性的title元素
//food[1] 等价于==//food[position()=1] 查找第一个元素
position()可用表达式:如//food[position()>1] 函数匹配position()
//book[not(position()>2)] ---取不大于2定位的元素
 
//food[last()] 查找最后一个元素,函数匹配last()
 
倒数第二个://food[last()-1]
 
@xxx代表属性=‘xxx’ 根据属性查找
//book[@category="web" and @cover="paperback"]----高阶用法:找到单个属性不唯一,可以组合其他属性来变为唯一性
//book[@category="web" or @cover="paperback"]
//book[@category=!"web"]
 
 
统计多个连接,可以模糊匹配多个contains
//book[contains(.,"Potter")] 包含Potter对象
//book/title[contains(.,"Potter")] 包含Potter对象==//book/title[contains(text(),"Potter")]
精确匹配://book/year[text(),="2015"]
//book/year[text()<="2015"]
//book/year[not(.="2015")]
高阶用法:用属性无法定位,找相邻元素定位元素--轴:--适用于较难定位的元素方法
/bookstore/book[1]/following-sibling::*;代表book[1]下面的所有同级元素
/bookstore/book[1]/price/following-sibling::*;代表book[1]下级price下面的所有同级元素
/bookstore/book[1]/price/preceding-sibling::*;代表book[1]下级price前面的所有同级元素
/bookstore/book[1]/price/parent::*;代表book[1]下级price前面的所有父级元素
/bookstore/book[1]/price/child::*;代表book[1]下级price前面的所有父级元素
/bookstore/book[1]/price/descendant::*;代表book[1]下级price前面的所有子孙级元素
借鉴下面:
 

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

  1. Selenium定位一 --单个元素定位方法

    Selenium-Webdriver 提供了强大的元素定位方法,支持以下三种方法. 单个对象的定位方法 多个对象的定位方法 层级定位 定位单个元素在定位单个元素时,selenium-webdriver ...

  2. selenium自动化测试——常见的八种元素定位方法

    selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位: ...

  3. Python3+Selenium2完整的自动化测试实现之旅(三):Selenium-webdriver提供的元素定位方法

    本篇以实例介绍selenium下的webdriver模块提供的定位页面元素(也可以称为对象)的方法和使用技巧,在此注意:在做WEB自动化测试前,需要对前端相关的技术有所了解,如HTML.XML.Xpa ...

  4. 不支持find_element_by_name元素定位方法,抛不支持find_element_by_name元素定位方法,会抛如下错误 org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session的解决

    appium1.5后不支持find_element_by_name元素定位方法,会抛如下错误 org.openqa.selenium.InvalidSelectorException: Locator ...

  5. Selenium之WebDriver元素定位方法

    Selenium WebDriver 只是 Python 的一个第三方框架, 和 Djangoweb 开发框架属于一个性质. webdriver 提供了八种元素定位方法,python语言中也有对应的方 ...

  6. Selenium2(WebDriver)总结(三)---元素定位方法

    元素定位的重要性不言而喻,如果定位不到元素谈何操作元素呢,webdrvier提供了很多种元素定位方法,如ID,Name,xpath,css,tagname等. 例如需要定位如下元素: <inpu ...

  7. Robotframework + Appium 之常用元素定位方法

    任何自动化测试,其实手动测试也是一样的,元素定位(目标定位)是首要任务,这是最直接的测试对象呀! 好了,废话不多说,又到了元素定位啦,之前我们已经介绍过selenium及appium常用的定位方法,下 ...

  8. appium 元素定位方法汇总

    以上图为例,要定位到右下角的 我的 ,并点击 # appium的webdriver提供了11种元素定位方法,在selenium的基础上扩展了三个,可以在pycharm里面输入driver.find_e ...

  9. 基于appium的常用元素定位方法

    一.元素定位工具 app应用的元素使用的是控件定位,不同于web网页,web网页定位元素通常使用的是F12工具,那么在app当中我们则要借助其它的工具来辅助定位. 1.uiautomatorviewe ...

随机推荐

  1. Css几个兼容性问题

    1.BUG_fireFox!!!一个容器内的子容器如果要左右浮动的话,需要在这个容器设置上样式:"overflow:hidden". 注:内部元素浮动就会导致外面的容器的高度在fi ...

  2. 数据绑定-绑定Servlet内置对象

    数据绑定:获取用户提交的参数,绑定到入参的参数中,就叫数据绑定. 绑定Servlet内置对象: 测试:

  3. Java高并发程序设计学习笔记(一):并行简介以及重要概念

    转自:https://blog.csdn.net/dataiyangu/article/details/86211544#_28 文章目录为什么需要并行?反对意见大势所趋几个重要的概念同步(synch ...

  4. 超详细思路讲解SQL语句的查询实现,及数据的创建。

    最近一直在看数据库方面的问题,总结了一下SQL语句,这是部分详细的SQL问题,思路讲解: 第一步:创建数据库表,及插入数据信息 --Student(S#,Sname,Sage,Ssex) 学生表 CR ...

  5. 跑满带宽的一款百度网盘下载工具 : PanDownload

    下载地址 : 点击进入 官网上面也有介绍使用.在这里,我再说一下 下载之后,解压,运行,登录, 登录好之后,准备进行设置 重要:下载情况分以下三部分 下载内容 < 300M,选择`打包下载`,只 ...

  6. Hive入门指南

    转自:http://blog.csdn.net/zhoudaxia/article/details/8842576 1.安装与配置 Hive是建立在Hadoop上的数据仓库软件,用于查询和管理存放在分 ...

  7. Delphi Timer组件

  8. c3p0连接池:com.mysql.cj.exceptions.InvalidConnectionAttributeException

    1 遇到的错误com.mysql.cj.exceptions.InvalidConnectionAttributeException: 四月 17, 2019 10:21:13 上午 com.mcha ...

  9. 红帽Linux故障定位技术详解与实例(3)

    红帽Linux故障定位技术详解与实例(3)   在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行 ...

  10. tornado下pandas ndarray乱试

    from tornado.web import RequestHandler from pymongo import MongoClient import pandas,xlrd from panda ...