假设以下XML:
<data>
<node id="1" />
<node id="2" />
<node id="12" />
<node id="16" />
</data>
此xpath表达式应有效:
count(//node)
..并应产生数字4
我是机器人框架的新手。是否可以在机器人框架中使用此xpath? 例如:
${value}= Get something something source=${xml} xpath=count(//node)
下面的一个有效,但是我希望xpath产生最终值,而不是列表。
@{nodelist}= Get Elements ${xml} xpath=node
Length Should Be ${nodelist} 4
修改
我知道我可以计算节点列表中的节点数。但是,我想使用xpath获取绝对值(整数或字符串)。现在,我需要编写不同的代码,具体取决于xpath结果在理论上可以产生最终值时是节点,列表还是属性。
答案 0 :(得分:2)
您可以使用Get Element Count
关键字返回与定位符匹配的元素数
您可以做些简单的事情
${count} = Get Element Count name:div_name
Should Be True ${count} > 2
有关关键字的更多信息,请查看此Keyword Page
答案 1 :(得分:1)
使用XML时,通常最好使用XML库。在以下示例中,您将找到一种使用XML库Get Element Count
对元素进行计数的解决方案。
data.xml
<data>
<node id="1" />
<node id="2" />
<node id="12" />
<node id="16" />
</data>
Testcase.robot
*** Settings ***
Library XML
Library OperatingSystem
*** Test Cases ***
TC
${xml} Get File ./data.xml
${count} Get Element Count ${xml} xpath=node
Should Be Equal As Integers ${count} ${4}