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

使用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)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值