空手道无法断言XML响应包含XPath

时间:2020-04-30 08:34:27

标签: karate

我试图断言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的文档。

非常感谢!

1 个答案:

答案 0 :(得分:1)

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

但这是您的解决方法:

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