Поиск различных текстов с одинаковым именем элемента в Robot Framework - PullRequest
0 голосов
/ 02 мая 2019

У меня есть XML, который выглядит так:

<vehicles>
   <car>
      <model>Accord</model>
      <color>Red</color>
   </car>
   <car>
      <model>Civic</model>
      <color>White</color>
   </car>
</vehicles>

Я уже знаю, что в XML должно быть Красное Соглашение и Белый Цивик.Я хочу использовать библиотеку XML Robot Framework, чтобы убедиться, что «Red» и «Accord» находятся в одном элементе «car», а «White» - в «Civic» в другом.

Я смогполучить элементы "car" в список, используя ключевое слово Get Elements.Тем не менее, поскольку я не могу гарантировать, какой элемент "автомобиля" является каким, я не могу использовать ключевое слово Element Text Should Be, чтобы увидеть, что это за цвет, не проверив, какая это модель в первую очередь (и наоборот).

Есть ли способ проверить, что Accord и Red находятся в одном автомобильном элементе, а Civic и White - в другом, без использования условной логики в тестовом примере?

1 Ответ

1 голос
/ 03 мая 2019

Для решения вашей проблемы я предлагаю вам использовать LOOP поверх вашего XML и сравнить с собственным ожидаемым словарем данных. Вот пример кода для решения:

${xml}    Parse Xml    ex.xml
${expectedVehicle}=    Create Dictionary    Civic=White   Accord=Red

@{vehicles}    Get Elements    ${xml}    car
 :FOR    ${vehicle}    IN    @{vehicles}
 \    ${car}    Get Element Text    ${vehicle}    model
 \    ${color}    Get Element Text    ${vehicle}    color
 \    run keyword If   '${car}'
 \    ...     Should Be Equal As Strings     ${color}    ${expectedVehicle}[${car}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...