我有一个看起来像这样的XML:
<vehicles>
<car>
<model>Accord</model>
<color>Red</color>
</car>
<car>
<model>Civic</model>
<color>White</color>
</car>
</vehicles>
我已经知道XML中应该有红色Accord和White Civic。我想使用Robot Framework的XML库来确保“红色”和“雅阁”位于同一个“汽车”元素中,而“白色”与“思域”同在另一个。
我能够使用关键字Get Elements
将“ car”元素放入列表中。但是,由于我不能保证哪个“ car”元素是哪个元素,因此我不能使用Element Text Should Be
关键字来查看颜色是什么,而不先检查它是什么模型(反之亦然)。
是否可以在测试用例中使用条件逻辑来检查Accord和Red是否在同一个汽车元素中,而Civic和White是否在同一个汽车元素中?
答案 0 :(得分:1)
为解决您的问题,建议您在XML上使用LOOP
并与自己的预期数据字典进行比较。此处提供用于解决的示例代码:
${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}]