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

来源:互联网 发布:淘宝图片护盾哪里 编辑:程序博客网 时间:2024/05/21 13:55

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

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5. <key>AppIDName</key>
  6. <string>chineseidublin</string>
  7. <key>ApplicationIdentifierPrefix</key>
  8. <array>
  9. <string>CS8M2QZ3L3</string>
  10. </array>
  11. <key>TimeToLive</key>
  12. <integer>364</integer>
  13. <key>Version</key>
  14. <integer>1</integer>
  15. </dict>
  16. </plist>

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)

0 0
原创粉丝点击