在SOAP UI中,XML响应我有一个如下元素:
<option selected="selected" value="5">Premium</option>
我正在尝试在XML响应中找到具有自定义字段值的元素。 获得价值&#34;选择&#34;选择&#39;元素的属性值=&#34; 5&#34;和text = Premium。
我正在做类似下面的事情。但它给我一个[]回复。def sortByValue= resp.depthFirst().option.findAll{it.@selected=="selected" && it.text()=='Premium'}
log.info sortByValue
而
def sortByValue= resp.depthFirst().option.findAll{it.@value=="5" && it.text()=='Premium'}
log.info sortByValue
给我回复
[option[attributes={value=5}; value=[Premium]]]
我无法获得所选
的值有人可以让我知道如何使这项工作?
答案 0 :(得分:1)
类似于这就足够了吗?
def xml = '''\
<div>
<select>
<option value="1">Regular</option>
<option selected="selected" value="5">Premium</option>
<option value="7">Gold</option>
</select>
</div>
'''
def parsed = new XmlParser().parseText(xml)
parsed.'**'.option.findAll {
it.'@selected' == 'selected' && it.text() == 'Premium'
}
答案 1 :(得分:0)
试试这个......:)
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder("TestStepName#Response")
def optionNode = holder.getDomNode("//option")
def optionNodeAttributes = optionNode.getAttributes()
log.info optionNodeAttributes.getNamedItem("selected").getNodeValue()
log.info optionNodeAttributes.getNamedItem("value").getNodeValue()
log.info holder.getNodeValue("//option")