Как прочитать элемент ответа XML в каркасе робота? - PullRequest
0 голосов
/ 07 декабря 2018

Я запустил SOAP API-запрос и получил ответ, как показано ниже, используя среду робота.

(reply){
   return = "PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS"
}

Я хотел бы получить значение PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS из XML-ответа.Я попытался получить значение с помощью команды

${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 и получаю следующую ошибку.enter image description here

, и когда я использую

 ${Token}=    Get Element    ${API_response_Data}    .//*return
    Log    ${Token.text}

, я получаю следующую ошибку.enter image description here

Пожалуйста, дайте мне знать, как извлечь значение из возвращаемого тега?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Библиотека SudsLibrary зависит от модуля Suds.К сожалению, этот модуль больше не поддерживается, и с течением времени ограничения этого модуля становятся более очевидными.

В вашем случае возвращаемый объект сложно использовать.Вот почему я предпочел получить ответ XML и обработать его сам, используя стандартную библиотеку XML.

Перед отправкой запроса вы можете использовать ключевое слово Set Return XML , чтобы включить это.Затем следуйте примеру в библиотеке XML для ключевого слова Анализ XML , чтобы получить фактическое значение

0 голосов
/ 07 декабря 2018

Вы можете использовать XML-библиотеку роботизированной инфраструктуры , чтобы проанализировать XML-ответ и затем получить текст определенного элемента.Например:

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

Ключевые слова Get Element возвращают объект элемента XML, вам необходим его атрибут text.Вывод следующий:

enter image description here

...