如何读取机器人框架中的 XML 响应元素?
How to read the XML response element in robot framework?
我有 运行 SOAP API 请求并使用机器人框架获得如下响应。
(reply){
return = "PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS"
}
我想从响应 XML 中检索值 PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS。我尝试使用命令
获取值
${token}= Set Variable ${API_response_Data.return}
但是它抛出一个错误
SyntaxError: unexpected EOF while parsing (<string>, line 1)
SOAP UI 工具的实际响应如下所示(仅供参考)。
<soapenv:Envelope xmlns:soapenv="something" xmlns:xsd="something">
<soapenv:Body>
<ns1:response xmlns:ns1="http://something.com">
<return>PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS</return>
</ns1:response>
</soapenv:Body>
</soapenv:Envelope>
我使用了 Parse XML 关键字,但出现以下错误。
当我使用
${Token}= Get Element ${API_response_Data} .//*return
Log ${Token.text}
我收到以下错误。
请告诉我如何从 return 标签中提取值?
您可以使用机器人框架的 XML library 来解析响应 XML,然后获取特定元素的文本。例如:
Demo
${root}= Parse XML soap_res.xml
${return}= Get Element ${root} .//*return
Log ${return.text}
Get Element
关键字returns一个XML元素对象,你需要它的text
属性。输出如下:
SudsLibrary 依赖于 Suds 模块。遗憾的是,这个模块不再被维护,并且随着时间的推移,这个模块的局限性越来越明显。
在您的情况下,返回的对象很难使用。这就是为什么我更喜欢返回 XML 响应并使用标准 XML 库自己处理它。
在发送请求之前你可以使用Set Return XML keyword to enable this. Then follow the example in the XML library for keyword Parse XML获取实际值
我有 运行 SOAP API 请求并使用机器人框架获得如下响应。
(reply){
return = "PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS"
}
我想从响应 XML 中检索值 PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS。我尝试使用命令
获取值${token}= Set Variable ${API_response_Data.return}
但是它抛出一个错误
SyntaxError: unexpected EOF while parsing (<string>, line 1)
SOAP UI 工具的实际响应如下所示(仅供参考)。
<soapenv:Envelope xmlns:soapenv="something" xmlns:xsd="something">
<soapenv:Body>
<ns1:response xmlns:ns1="http://something.com">
<return>PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS</return>
</ns1:response>
</soapenv:Body>
</soapenv:Envelope>
我使用了 Parse XML 关键字,但出现以下错误。
当我使用
${Token}= Get Element ${API_response_Data} .//*return
Log ${Token.text}
我收到以下错误。
请告诉我如何从 return 标签中提取值?
您可以使用机器人框架的 XML library 来解析响应 XML,然后获取特定元素的文本。例如:
Demo
${root}= Parse XML soap_res.xml
${return}= Get Element ${root} .//*return
Log ${return.text}
Get Element
关键字returns一个XML元素对象,你需要它的text
属性。输出如下:
SudsLibrary 依赖于 Suds 模块。遗憾的是,这个模块不再被维护,并且随着时间的推移,这个模块的局限性越来越明显。
在您的情况下,返回的对象很难使用。这就是为什么我更喜欢返回 XML 响应并使用标准 XML 库自己处理它。
在发送请求之前你可以使用Set Return XML keyword to enable this. Then follow the example in the XML library for keyword Parse XML获取实际值