微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在缺少元素的 Robot Framework 中调用 soap 方法

如何解决在缺少元素的 Robot Framework 中调用 soap 方法

当我尝试在 Robot 框架中使用 zeeplibrary 调用soapmethod 时,出现缺少元素错误。我不明白为什么,xml中同级别的其他三个元素似乎没有问题。如果通过 SoapUI 发送它,xml 工作正常

我的机器人脚本如下:

 *** Variables ***
 ${XML_Cardscan240}    Resources/Inputs/cardscan240.xml
 *** Test Cases ***
  Cardscan
    ${requestblank}  get file    ${XML_Cardscan240}
    log    ${requestblank}
    ${requesttest}    Replace String    ${requestblank}   _Card_    4207575
    log    ${requesttest}
         ${XMLRequest}    parse xml    ${requesttest}
    Create soap client    ../../resources/WSDL/SIT_MA_ASW POS Inbound.WSDl
    ${response}  call soap method   ASWPOSInboundLoyaltyMember     ${XMLRequest}

我的 xml 文件看起来像:

 <?xml version="1.0" encoding="UTF-8"?>
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:cus="http://application.com/CustomUI">
   <soapenv:Header/>
  <soapenv:Body>
   <cus:POSInboundLoyaltyMember_Input>
      <cus:CardNumber>_Card_</cus:CardNumber>
      <cus:MessageXML><![CDATA[<?xml version="1.0"?>
    <PrivateData>
   <LoyaltyMessageNumber1>
   <Customer MsgType="1" StoreID="124" PosID="1" TransID="124"
   BusinessDate="2005/02/16">
   <LoyaltyInfo CardID="_Card_" CardIDType="P" />
  </Customer>
 </LoyaltyMessageNumber1>
  </PrivateData>
  ]]></cus:MessageXML>
     <cus:BUID>9999000188</cus:BUID>
     <cus:MessageType>0240</cus:MessageType>
  </cus:POSInboundLoyaltyMember_Input>
  </soapenv:Body>
 </soapenv:Envelope>

WSDL 文件的相关部分如下所示:

 ><xsd:element
 name="ASWPOSInboundLoyaltyMember_Input" 
 ><xsd:complexType
 ><xsd:sequence
     ><xsd:element
     name="CardNumber"
     type="xsd:string"
     ></xsd:element
 ><xsd:element
 name="MessageXML"
 type="xsd:string"
 ></xsd:element
      ><xsd:element
      name="BUID"
      type="xsd:string"
      ></xsd:element
  ><xsd:element
  name="MessageType"
  type="xsd:string"
  ></xsd:element
        ></xsd:sequence
        ></xsd:complexType
       ></xsd:element
   ><xsd:element
   name="ASWPOSInboundLoyaltyMember_Output"
   ><xsd:complexType
   ><xsd:sequence
   ><xsd:element
        name="MessageType"
        type="xsd:string"
        ></xsd:element
    ><xsd:element
    name="MessageXML"
    type="xsd:string"
    ></xsd:element
        ><xsd:element
        name="ResponseCode"
        type="xsd:string"
        ></xsd:element
   ></xsd:sequence
   ></xsd:complexType
   ></xsd:element
       ><xsd:element

有人明白出了什么问题吗?我得到的确切错误是“ValidationError: Missing element MessageXML (ASWPOSInboundLoyaltyMember_Input.MessageXML)”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。