Robotframwork SudsLibrary产生时,它调用“呼叫SOAP方法”
问题描述:
当试图执行以下robotscript附加的元素,它增加了额外的元件到登录元件..Robotframwork SudsLibrary产生时,它调用“呼叫SOAP方法”
Library Selenium2Library
Library Collections
Library String
Library uuid
Library Dialogs
Library SudsLibrary
Create Soap Client http://xxxxxxxxx:18080/xxxxx_b/xxx?wsdl
${dbl array}= Create Wsdl Object logIn
Set Wsdl Object Attribute ${dbl array} username xxx
Set Wsdl Object Attribute ${dbl array} password xxxx
${result}= Call Soap Method logIn ${dbl array}
log to consol ${result}
原始请求格式
<soapenv:Envelope xmlns:soapenv="http://xxxxxxxxxxxxx/x/x/" xmlns:ws="http://xxxxxxxxxxxxxxx/">
<soapenv:Header/>
<soapenv:Body>
<ws:logIn>
<!--Optional:-->
<username>xxx</username>
<!--Optional:-->
<password>xxx</password>
</ws:logIn>
</soapenv:Body>
</soapenv:Envelope>
生成的代码:
<SOAP-ENV:Envelope xmlns:ns0="http://xxxxxxxxxxxxxx/" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="h
ttp://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<ns1:Body>
<ns0:logIn>
<username>
<username>xxx</username>
<password>xxx</password>
</username>
</ns0:logIn>
</ns1:Body>
</SOAP-ENV:Envelope>
如何删除额外的用户名标记?
<username>
<username>xxx</username>
<password>xxx</password>
</username>
答
很可能问题在于login方法不会将其参数包含在对象中,而是直接包含在对象中。 Suds为所有方法创建类型,但这些不需要调用这些方法。 如果您查看Create Soap Client的输出,您可能会看到类似logIn(用户名,密码)。这意味着你直接传递参数而不是传递给某个对象。
Library Selenium2Library
Library Collections
Library String
Library uuid
Library Dialogs
Library SudsLibrary
Create Soap Client http://xxxxxxxxx:18080/xxxxx_b/xxx?wsdl
${result}= Call Soap Method logIn some_username some_password
log to console ${result}
+0
谢谢.. :)正确答案.. –
添加语言标签帮助按语言过滤问题。 – Sergii