首页 > 解决方案 > 空手道不能断言 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

非常感谢!

标签: karate

解决方案


是的,XPath 有时会有一些奇怪的行为。如果您能帮助排除故障和修复,我将不胜感激。这不是我们的优先事项,因为 JSON 是最常见的情况。

但这是您的解决方法:

* def vmap = /VMAP/AdBreak[@timeOffset='00:00:20']

推荐阅读