Python实现Web UI自动化测试实战:Selenium 3/4+unittest/Pytest+GitLab+Jenkins
上QQ阅读APP看书,第一时间看更新

4.4 XML相关知识

本节我们来了解一下XML相关的概念,重点认识一下XML的树结构。

4.4.1 XML简介

我们还是通过几个问题来简单了解一下XML。

(1)什么是XML

●XML是可扩展标记语言(eXtensible Markup Language)的英文缩写。

●XML是一种标记语言,类似HTML。

●XML的设计宗旨是传输数据,而非显示数据。

●XML标签没有被预定义,需要自行定义。

●XML被设计为具有自我描述性。

●XML是W3C的推荐标准。

(2)XML和HTML有什么不同

●XML不能用于替代HTML。

●XML和HTML的设计目的不同。

●XML被设计为传输和存储数据,其重点是数据的内容。

●HTML被设计用来显示数据,其重点是数据的外观。

●HTML旨在显示信息,而XML旨在传输信息。

(3)XML的用途

●把数据从HTML中分离。

●简化数据共享。

●简化数据传输。

●简化平台的变更。

●使数据更有用。

●用于创建新的网络语言。

4.4.2 XML树结构

下面是一个XML文档的示例。

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>SK</to>
<from>Storm</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

XML使用的是简单的具有自我描述性的语法:第一行是XML声明,它定义了XML的版本(1.0)和所使用的编码(UTF-8字符集);第二行描述了文档的根元素(像在说:“本文档是一个便签。”)。

<note>

接下来4行描述了根元素的4个子元素(to、from、heading以及body)。

<to>SK</to>
<from>Storm</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>

最后一行定义了根元素的结尾。

</note>

XML文档形成了一种树结构。XML文档必须包含根元素,该元素是所有其他元素的父元素。XML文档中的元素形成了一棵文档树,这棵树从根部开始,扩展到树的最底端。此外,所有元素均可拥有子元素。

<root>
  <child>
    <subchild>...</subchild>
  </child>
</root>

父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素,相同层级的子元素为同胞(兄弟或姐妹)。所有元素均可拥有文本内容和属性。

例如下面这个XML文档示例。

<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title> 
  <author>Giada De Laurentiis</author> 
  <year>2005</year> 
  <price>30.00</price> 
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title> 
  <author>J K. Rowling</author> 
  <year>2005</year> 
  <price>29.99</price> 
</book>
<book category="WEB">
  <title lang="en">Learning XML</title> 
  <author>Erik T. Ray</author> 
  <year>2003</year> 
  <price>39.95</price> 
</book>
</bookstore>

我们可以将其描述为树结构,如图4-16所示。

图4-16 XML树结构

例子中的根元素是<bookstore>,文档中的所有<book>元素都被包含在<bookstore>中。<book>元素有4个子元素:<title>、< author>、<year>、<price>。

4.4.3 XPath

XPath的全称是XML Path Language,即XML路径语言。它是一门可以在XML文档中查找信息的语言。XPath基于XML树结构,提供了在数据结构树中找寻节点(又称结点)的能力。提出XPath的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型,但是XPath很快被开发者用来当作小型查询语言。在做WebUI自动化测试的时候,我们可以使用XPath来定位元素。

XPath使用路径表达式在XML文档中选取节点,节点是通过沿着路径或者按步来选取的。表4-4所示的是常用的路径表达式。

表4-4 XPath路径表达式

表4-5所示为一些路径表达式以及表达式的结果。

表4-5 XPath示例

XPath相关的知识先简单介绍到这里。如果读者意犹未尽的话,可以移步官网进行学习。

在下一章中,我们会结合元素定位来介绍一些XPath的常见用法。

本章讲解了一些前端基本知识,包括HTML、CSS、JavaScript和XML,简单总结如下。

●HTML用来展示网页的内容。

●CSS实现了网页的布局。

●JavaScript实现了网页的动态功能。

●XML用来存储网页的数据。