XPath
1.什么是xpath?
XPath即为XML路径语言,它是一种用来(标准通用标记语言的子集)在 HTML\XML 文档中查找信息的语言。
2.什么是XML?
XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
3.XML与HTML
| 数据格式 | 描述 | 设计目标 |
|---|---|---|
| XML | Extensible Markup Language (可扩展标记语言) | 被设计为传输和存储数据,其焦点是数据的内容 |
| HTML | HyperText Markup Language(超文本标记语言) | 显示数据及如何更好显示数据 |
4.节点的概念:每个XML/HTML的标签我们都称之为节点
5.XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
| 表达式 | 描述 |
|---|---|
| nodename | 选取此节点所有子节点 |
| / | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 |
| // | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 |
| . | 选取当前节点 |
| … | 选取当前节点的父节点 |
| @ | 选取属性 |
查找某个特定的节点或者包含某个指定的值的节点
| 路径表达式 | 结果 |
|---|---|
| /bookstore/book[1] | 选取属于bookstore子元素的第一个book元素 |
| /booksrore/book[last()] | 选取属于bookstore子元素的最后一个book元素 |
| /booksrore/book[last()-1] | 选取属于bookstore子元素的倒数第二个book元素 |
| /booksrore/book[position() < 3 ] | 选取最前面的两个属于bookstore元素的子元素的book元素 |
| //title[@lang] | 选取所有拥有名为lang属性的title元素 |
| //title[@lang=‘eng’] | 选取所有title元素,且这些元素拥有值为eng的lang属性 |
选择未知节点
| 通配符 | 描述 |
|---|---|
| * | 匹配任何元素节点 |
| @* | 匹配任何属性节点 |
| node() | 匹配任何类型的节点 |
在下面表格中,我们列出了一些路径表达式,以及这些表达式的结果:
| 路径表达式 | 结果 |
|---|---|
| /bookstore/* | 选取bookstore元素的所有子元素 |
| //* | 选取文档中的所有元素 |
| html/node()/meta/@* | 选择html下面任意节点下的meta节点的所有属性 |
| //title[@*] | 选取所有带有属性的title元素 |
选取若干路径
| 路径表达式 | 结果 |
|---|---|
| //book/title丨//book/price | 选取book元素的所有title和price元素 |
| //title丨//price | 选取文档中的所有title和price元素 |
| /bookstore/book/title 丨//price | 选取属于bookstore元素的book元素的所有title元素,以及文档中所有的price元素 |
补充:
//*[text()=“x’x’x”] 全部//title/text() 文本内容是xxx的元素
//*[starts-with(@attribute,’xxx’)] 属性以xxx开头的元素
//*[contains(@attribute,’xxxxx’)] 属性中含有xxx的元素
//*[@attribute1=value1 and @attribute2=value2] 同时有两个属性值的元素
css选择器
1.什么是css选择器?
CSS 中,选择器是一种模式,用于选择需要添加样式的元素。计算机能够通过css选择器定位到相应元素,我们在编写自动化测试脚本的时候很多时候是在不断地找到css选择器。
2.css选择器语法
通过伪类名、id、标签名定位
| .class | .intro | 选择class="intor"的所有元素 |
|---|---|---|
| #id | #firstname | 选取id="firstname"的所有元素 |
| * | * | 选取所有元素 |
| element | p | 选取所有p标签元素 |
通过元素之前嵌套关系
| element,element | div,p | 选择所有div元素和所有p元素 |
|---|---|---|
| element element | div p | xuanzediv元素内所有p元素 |
| element>element | div>p | 选取选择父元素为div元素的所有p元素 |
通过属性
| [attribute^=value] | a[src^=“https”] | 选择其src属性值以及"https"开头的每个a元素 |
|---|---|---|
| attribute$=value | a[src$=".pdf"] | 选择其src属性以.pdf结尾的所有a元素. |
| attribute*=value | a[src*=“abc”] | 同上,从最后一个子元素开始计数 |