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

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

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

 
 
   
   
   
   
  1. xml version="1.0" encoding="UTF-8"?>
  2. version="1.0">
  3. AppIDName
  4. chineseidublin
  5. ApplicationIdentifierPrefix
  6. CS8M2QZ3L3
  7. TimeToLive
  8. 364
  9. Version
  10. 1

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)

你可能感兴趣的:(XPath 选取具有特定文本值的节点)