Не удалось загрузить внешний объект Ошибка при чтении файла SOAP в Robot Framework - PullRequest
0 голосов
/ 26 сентября 2018

Я получаю эту ошибку при разборе XML.OSError: Ошибка чтения файла 'CommandResponseError.xml': не удалось загрузить внешнюю сущность "CommandResponseError.xml"

Мой код ::

*** Settings ***
Documentation    Suite description
Library  XML

*** Variables ***
${InputPath}                     ${CURDIR}\\Input
${CommandResponseErrorXML}       CommandResponseError.xml

*** Test Cases ***
Construct Error Code XML To PUSH
    [Documentation]  This KW is used to construct Error XML File
    [Tags]    XML read
     ${XMLNodes}=   Parse XML   ${CommandResponseErrorXML}

Я использую библиотеку XML для анализа xml.

Вот файл XML.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header/>
    <soap:Body>
        <SendTOPMessages xmlns="http://schemas.turtletech.com/TS2/">
            <messages>
                <RFTOPCommand xmlns="http://schemas.turtletech.com/TS2/">
                    <MessageId>#MessageId</MessageId>
                    <ReceivedTime>1496632500</ReceivedTime>
                    <TOPAddress>#RFCollectorIdentifier</TOPAddress>
                    <LocalWANAddress>0</LocalWANAddress>
                    <LocalLANAddress>4278124157</LocalLANAddress>
                    <RemoteWANAddress>#RemoteWANAddress</RemoteWANAddress>
                    <RemoteLANAddress>#SerialNumber</RemoteLANAddress>
                    <Priority>1</Priority>
                    <TimeToLive>298</TimeToLive>
                    <Mood>0</Mood>
                    <ReturnReceipt>0</ReturnReceipt>
                    <MaxHops>252</MaxHops>
                    <MessageType>4</MessageType>
                    <MessagePayload>#Payload</MessagePayload>
                </RFTOPCommand>
            </messages>
        </SendTOPMessages>
    </soap:Body>
</soap:Envelope>

1 Ответ

0 голосов
/ 27 сентября 2018

В вашем примере кода:

${XMLNodes}=   Parse XML   ${CommandResponseErrorXML} 

вы ссылаетесь на ${CommandResponseErrorXML}, что в свою очередь означает:

${CommandResponseErrorXML}       CommandResponseError.xml. 

Это будет работать, если файл робота и CommandResponseError.xmlв той же папке.Измените его на:

${InputPath}                     ${CURDIR}/Input
${CommandResponseErrorXML}       ${InputPath}/CommandResponseError.xml

, и вы добавите InputPath для создания полного пути к Root / Input / file.xml.

Примечание: одиночная косая черта работает на обоих Unixи винда.На мой взгляд, он предпочел и избежал обратной косой черты.Даже если только для удобства чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...