karate - 空手道不能断言 XML 响应包含 XPath
问题描述
我试图断言 xml 是否包含 xpath。例如 xpath 是://vmap:AdBreak[@timeOffset='00:00:20']
当我在https://www.freeformatter.com/xpath-tester.html上检查它时,它成功返回了一个元素。
但是,当我尝试使用以下空手道机制时,它失败了:
Given url "https://ray.mond.com/"
And header Content-Type = 'application/xml'
And path "vmap/vmap.xml"
When method GET
Then status 200
* print response
* xml resp = response
* def vmap = //vmap:AdBreak[@timeOffset='00:00:20']
* match resp contains vmap
错误是
xpath does not exist: //vmap:AdBreak[@timeOffset='00:00:20'] on response
我做错了吗?我正在尝试遵循此处的文档https://github.com/intuit/karate/blob/master/karate-junit4/src/test/java/com/intuit/karate/junit4/xml/xml.feature。
非常感谢!
解决方案
是的,XPath 有时会有一些奇怪的行为。如果您能帮助排除故障和修复,我将不胜感激。这不是我们的优先事项,因为 JSON 是最常见的情况。
但这是您的解决方法:
* def vmap = /VMAP/AdBreak[@timeOffset='00:00:20']
推荐阅读
- asp.net-core - MVC based authentication templates in ASP.NET Core 2.0
- hibernate - 获取半径内的所有位置(Spring Boot)
- php - 将带有变量的链接添加到 WooCommerce 邮件
- python-3.x - Watson speech to text: Invalid credentials error (Code: 401)
- docker - Is it possible to assign static ip to a stateful container in kubernates? if yes how it can be
- javascript - 谷歌图表弃用后如何使用样式标记
- python - 音频流最终在用 python 编写的 TCP 服务器中出现额外的啁啾和噪音
- excel - 当我运行数据透视表宏时,我应该输入什么命令以便不需要物理修改工作表编号
- angular - 如何在角度 7 中添加这种类型的列表
- enums - Unwrap enum when all variants are of the same type