首页 > 解决方案 > 如何读取机器人框架中的 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}

我收到以下错误。 在此处输入图像描述

请让我知道如何从返回标签中提取值?

标签: xmlrobotframeworkparsexml

解决方案


您可以使用机器人框架的XML 库来解析响应 XML,然后获取特定元素的文本。例如:

Demo
    ${root}=    Parse XML   soap_res.xml
    ${return}=  Get Element     ${root}     .//*return
    Log     ${return.text}

Get Element关键字返回一个 XML 元素对象,您需要它的属性text。输出如下:

在此处输入图像描述


推荐阅读