如何在空手道变量中设置元素 xml 的属性值?
How to set attribute value of element xml in a variable in karate?
我正在尝试在空手道的变量中设置元素 xml 的属性值,如下所示:
order.xml file
<Task>
<PrimaryTask ref="S2"></PrimaryTask>
</Task>
从上面的xml例子中,我将获取@ref的属性值并将其设置到一个名为“act_ref”的变量中,如下:
Scenario: Sample Code for checking
Given def order = read('../order.xml')
* def act_ref = get order //..//Task/PrimaryTask/@ref
* print 'the value of act_ref is:', act_ref
And xml act_TaskInfo = get order //Request/SearchBy/Tasks/Task[@subjectID=act_ref]
并在此处登录:
13:50:40.346 [ForkJoinPool-1-worker-3] INFO com.intuit.karate - [print] the value of act_primary_subject_ref is: S2
TC1_TC12.feature:12 - xpath does not exist: //Request/SearchBy/Tasks/Task[@taskID=act_ref] on client_order
可以看到路径“//Request/SearchBy/Tasks/Task[@taskID=act_ref]”中的变量“act_ref”无法调用正确的值。所以如果你知道如何在空手道的变量中设置元素 xml 的属性值,请帮助我?谢谢!
我的预期是://Request/SearchBy/Tasks/Task[@taskID='S2'],'S2' 是 act_ref 的值。
参考文档,使用karate.xmlPath()
API:https://github.com/karatelabs/karate#advanced-xpath
这是一个简短的例子:
* def attrName = 'S2'
* def payload = <Task><PrimaryTask ref="S2">foo</PrimaryTask></Task>
* def value = karate.xmlPath(payload, "//*[@ref='" + attrName + "']")
* assert value == 'foo'
我正在尝试在空手道的变量中设置元素 xml 的属性值,如下所示:
order.xml file
<Task>
<PrimaryTask ref="S2"></PrimaryTask>
</Task>
从上面的xml例子中,我将获取@ref的属性值并将其设置到一个名为“act_ref”的变量中,如下:
Scenario: Sample Code for checking
Given def order = read('../order.xml')
* def act_ref = get order //..//Task/PrimaryTask/@ref
* print 'the value of act_ref is:', act_ref
And xml act_TaskInfo = get order //Request/SearchBy/Tasks/Task[@subjectID=act_ref]
并在此处登录:
13:50:40.346 [ForkJoinPool-1-worker-3] INFO com.intuit.karate - [print] the value of act_primary_subject_ref is: S2
TC1_TC12.feature:12 - xpath does not exist: //Request/SearchBy/Tasks/Task[@taskID=act_ref] on client_order
可以看到路径“//Request/SearchBy/Tasks/Task[@taskID=act_ref]”中的变量“act_ref”无法调用正确的值。所以如果你知道如何在空手道的变量中设置元素 xml 的属性值,请帮助我?谢谢!
我的预期是://Request/SearchBy/Tasks/Task[@taskID='S2'],'S2' 是 act_ref 的值。
参考文档,使用karate.xmlPath()
API:https://github.com/karatelabs/karate#advanced-xpath
这是一个简短的例子:
* def attrName = 'S2'
* def payload = <Task><PrimaryTask ref="S2">foo</PrimaryTask></Task>
* def value = karate.xmlPath(payload, "//*[@ref='" + attrName + "']")
* assert value == 'foo'