您的位置:首页 > 其它

XPath 选取具有特定文本值的节点

2014-11-12 15:17 183 查看
使用selenium进行自动化测试时,Xpath对界面元素的识别有很重要的作用。 如何利用xpath查找到带有特定文本值的节点是一个很重要的技能。

要解决的问题:

从 xml 文件中选取具有某个特定文本值的节点,比如说我要处理的是 plist 文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>AppIDName</key>

<string>chineseidublin</string>

<key>ApplicationIdentifierPrefix</key>

<array>

<string>CS8M2QZ3L3</string>

</array>

<key>TimeToLive</key>

<integer>364</integer>

<key>Version</key>

<integer>1</integer>

</dict>

</plist>

[/code]
key=AppIDName,我要提取它所对应的 string value,即 chineseidublin,那么

1. 定位给定的 key 所对应的节点 N

2. 取节点 N 后面的第一个节点

所使用的 XPath 表达式:

//key[text()='AppIDName']/following::*[1]

PS:

上面的表达式对于 XPath 中的各个知识点都有涉及:

//key
路径表达式

从匹配 key 的节点开始选择文档中的节点,不用考虑 key 节点在文档中的位置。
text()
分类测试,属于节点测试

匹配所有的文本节点
=
运算符

等于
following::*


选取文档中当前节点的结束标签之后的所有节点。
[1]
谓语

选取第一个元素

参考:

1.
XPath 教程 | W3School

2. XML Path Language (XPath) 2.0 (Second Edition)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: