当前位置: 首页 > 知识库问答 >
问题:

Karate无法断言XML响应包含XPath

储嘉悦
2023-03-14

我试图断言一个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个答案

池永长
2023-03-14

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

但这是你的解决方案:

* def vmap = /VMAP/AdBreak[@timeOffset='00:00:20']
 类似资料:
  • 我试图在XSD中使用以下内容 我知道断言/断言是XML模式1.1的一部分,但不是1.0。然而,我所读到的一切都表明名称空间是相同的:http://www.w3.org/2001/XMLSchema 一个小问题是,我用来编写模式的程序(Microsoft Visual Studio)不识别“断言”元素,说“命名空间中的元素复合物类型”(...)有无效的子元素“断言”。 主要的问题是,当我实际尝试使用

  • 我正在使用SAML登录我的应用程序,我想在登录响应断言的属性中包括用户组。我想知道登录请求是否应该指定该属性是必需的,或者这是通常需要在IDP上进行的配置,或者是专门针对我的服务提供商在IDP中进行的配置。 我在OpenAM中创建了标识提供者,并在OpenAM中配置了我自己的APP服务提供者作为远程SP,我还在OpenAM中创建了一个用户并将其分配给一个组,但是,我在响应断言中没有看到该组,即使我

  • 我正在用空手道的bdd方法编写api测试自动代码。断言部分让我很难过。我的响应如下所示,当我调用路径时,我通过http://jsonpath.herokuapp.com/网站检查了空空数组。然而,当我运行我的小cucumber空手道功能,然后它给我的响应为空,它仍然给我错误断言。它说实际: null,应为:null。。。 我看不到任何错误,如何修复?这是一个bug还是有什么方法可以处理? 我的回应

  • 我为我们的一个客户开发了一个定制的SAML IdP。但是,当试图将以下响应传递给SP时,它失败了。我尝试使用一些在线SAML在线工具来验证响应,我看到了一些错误,但我不知道哪里出了问题。有人能帮忙吗? 在samltool.com上使用验证器,我得到以下错误: XML无效。 行:69列:0-->元素‘{http://www.w3.org/2000/09/xmldsig#}signature':不需要

  • 场景是,我得到了以下JSON响应,例如: 现在我想检查响应是否在“b”节点中包含“ab”。在空手道方面,我不知道该怎么做。 当方法获得状态200且匹配响应==?,则给定路径“url”??

  • 每当我尝试使用assertResponseOk()时,都会出现此错误 致命错误:在/home/faasdril/public\u html/test/Tests/Unit/LessonsTest中调用未定义的方法Tests\Unit\LessonsTest::assertResponseOk()。php第19行 我可以使用其他断言方法,并且我已经正确地扩展了TestCase类 我用的是Larave