Поиск разных текстов с одинаковым именем элемента в Robot Framework

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

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

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

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

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

# robotframework
Источник
Codelisting
за 1 против

Для решения вашей проблемы я предлагаю вам использовать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}]
Codelisting
Популярные категории
На заметку программисту