xpath 第一个元素_贝程学院:Selenium与XPath

一.为什么学习XPathXPath (XML Path Language)最初是用来在 XML 文档中定位 DOM 节点的语言。由于 HTML 也可以算作 XML 的一种实现,所以 Selenium Webdriver也可以利用 XPath 这一强大的语言来定位 Web元素。XPath在传统属性定位之外扩展了元素定位能力,以便应对没有ID或name属性的情况。利用 XPath 可以通过绝对路径,或...
摘要由CSDN通过智能技术生成

d243700731e63af89ed1b3897c70ee86.png

一.为什么学习XPath

XPath (XML Path Language)最初是用来在 XML 文档中定位 DOM 节点的语言。由于 HTML 也可以算作 XML 的一种实现,所以 Selenium Webdriver也可以利用 XPath 这一强大的语言来定位 Web元素。XPath在传统属性定位之外扩展了元素定位能力,以便应对没有ID或name属性的情况。利用 XPath 可以通过绝对路径,或者相对于一个可精确定位的元素的相对路径来定位。为了保证定位的健壮性,推荐使用相对路径和基于位置关系的定位。

二.什么是XPath

XPath 是一门在XML文档中查找信息的语言,它一种表达式语言,它的返回值可能是节点,节点集合,原子值,以及节点和原子值的混合等。XPath 可用来在 XML 文档中对元素和属性进行遍历。同时XPath是用于在网页上识别元素的技术,它就像HTML元素的地址。在XPath 有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。基本值(或称原子值,Atomic value)是无父或无子的节点。项目(Item)是基本值或者节点。xpath的作用就是两个字“定位”,运用各种方法进行快速准确的定位,推荐两个非常有用的的firefox工具:firebug和xpath checker。

三.初识XPath

以一个XML文件为例,来看看XPath如何定位元素:

<?xml version="1.0"?>
<root>
	<child attr="attr" />
	<child>
		<a><desc /></a>
	</child>
</root>

针对上面的XML文档应用XPath定位节点:

  • 选取root:/root 或者root
  • 选取根节点下的所有child元素://child
  • 选取属性是attr的节点://@attr

四.XPath语法

1. 基本概念

A. 节点(Node)

1) 根节点(Root Node)

根节点是一棵树的最上层,根节点是唯一的。树上其它所有元素节点都是它的子节点或后代节点。对根节点的处理机制与其它节点相同。在XSLT中对树的匹配总是先从根节点开始。

2) 元素节点(Element Nodes)

元素节点对应于文档中的每一个元素,一个元素节点的子节点可以是元素节点、注释节点、处理指令节点和文本节点。可以为元素节点定义一个唯一的标识id。元素节点都可以有扩展名,它是由两部分组成的:一部分是命名空间URI,另一部分是本地的命名。

3) 文本节点(Text Nodes)

文本节点包含了一组字符数据,即CDATA中包含的字符。任何一个文本节点都不会有紧邻的兄弟文本节点,而且文本节点没有扩展名。

4) 属性节点(Attribute Nodes)

每 一个元素节点有一个相关联的属性节点集合,元素是每个属性节点的父节点,但属性节点却不是其父元素的子节点。这就是说,通过查找元素的子节点可以匹配出元 素的属性节点,但反过来不成立,只是单向的。再有,元素的属性节点没有共享性,也就是说不同的元素节点不共有同一个属性节点。

对缺省属性的处理等同于定义了的属性。如果一个属性是在DTD声明的,但声明为 #IMPLIED,而该属性没有在元素中定义,则该元素的属性节点集中不包含该属性。

此外,与属性相对应的属性节点都没有命名空间的声明。命名空间属性对应着另一种类型的节点。

5) 命名空间节点(Namespace Nodes)

每一个元素节点都有一个相关的命名空间节点集。在XML文档中,命名空间是通过保留属性声明的,因此,在XPath中,该类节点与属性节点极为相似,它们与父元素之间的关系是单向的,并且不具有共享性。

6) 处理指令节点(Processing Instruction Nodes)

处理指令节点对应于XML文档中的每一条处理指令。它也有扩展名,扩展名的本地命名指向处理对象,而命名空间部分为空。

7) 注释节点(Comment Nodes)

注释节点对应于文档中的注释。

B. 基本值(或称原子值,Atomic value)

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值