我正在使用xml解析器来访问响应中的元素 这是代码
# define library
*** Settings ***
Library SudsLibrary
Library XML
Library Collections
*** Variables ***
*** Test Cases ***
test
abc
*** Keywords ***
# create soap client object
Create Soap Client http://www.webservicex.com/globalweather.asmx?wsdl
${GetCitiesByCountry} Create Wsdl Object GetCitiesByCountry
${GetCitiesByCountry.CountryName} Set Variable india
# call soap web service
call soap method GetCitiesByCountry ${GetCitiesByCountry}
log ${GetCitiesByCountry}
${soap_response} Get Last Received
Log ${soap_response}
${root}= parse xml ${soap_response}
log ${root}
${root1}= parse xml ${soap_response} first
log ${root1}
这是输出:它不显示生成的xml
Documentation:
Logs the given message with the given level.
Start / End / Elapsed: 20170626 11:52:46.886 / 20170626 11:52:46.886 / 00:00:00.000
11:52:46.886 INFO <Element 'Envelope' at 0x0000000003670930
BuiltIn . Log ${root1}
Documentation:
Logs the given message with the given level.
Start / End / Elapsed: 20170626 11:52:46.887 / 20170626 11:52:46.887 / 00:00:00.000
11:52:46.887 INFO <Element '{http://schemas.xmlsoap.org/soap/envelope/}Envelope' at 0x0000000003728C60>
答案 0 :(得分:3)
在网络服务的响应中,有一些奇怪的事情正在发生。似乎它的一部分是HTML编码,而另一部分则不是。无法解释,但通过简单的字符串替换就可以轻松解决。
*** Settings ***
Library SudsLibrary
Library XML
Library String
*** Test Cases ***
Test Webservice
# create soap client object
Create Soap Client http://www.webservicex.com/globalweather.asmx?wsdl
${GetCitiesByCountry} Create Wsdl Object GetCitiesByCountry
${GetCitiesByCountry.CountryName} Set Variable india
# # call soap web service
call soap method GetCitiesByCountry ${GetCitiesByCountry}
${soap_response} Get Last Received
# Clean up response
${soap_response} Replace String ${soap_response} < <
${soap_response} Replace String ${soap_response} > >
${node}= Get Element Text ${soap_response} .//Table[1]//Country[1]
Log To Console ${node}