机械手框架:列表应该是空值相等的问题:“无”和“

时间:2020-07-23 07:32:05

标签: excel list robotframework nonetype

所以这里的问题是我正在比较来自不同位置的两个列表。一个列表来自excel,另一列表来自特定表,该表代表相同excel值的导入值。 因此所有值都是正确的;但是excel会给出一个或可能是“ none”的多个值,并且从表中我只能以空值的形式得到这些值,例如“”。如何将“无”更改为“反之”? 在这种特殊情况下,“ None”和“''位于列表的第10个值槽中,但随着时间的流逝,它会更改,因为将不同的值放入excel。
那么,如何删除或替换/修改这些“ nones”为'':s?反之亦然?

Excel列表:[1,'X','Y',200,1999,'Z','W',4,'V',无,2,1100] 列表:[1,'X','Y',200,1999,'Z','W',4,'V','',2,1100]

使用ExcelLibrary和ExcelRobot来获得关键字..的混合,下面是类似的方法

${iTotalRows} =   Get Row Count    Sheet1 (etc.) # excel

${item1} =      Get Table cell     //table[@class="xx"]    2        1
${item1} =      Get Table cell     //table[@class="xx"]    2        2 #etc..
Lists should be equal       ${x}       ${y}

提前谢谢

1 个答案:

答案 0 :(得分:2)

我认为没有为此准备的关键字(例如,在“收藏库”中)。如果我错了并且正在重新发明轮子,请告诉我,我可以编辑或删除答案。

我会在Python中创建一个自定义关键字,并将其作为库导入到RF中。这可以在Python中轻松完成(实际上只有一行),因此创建它甚至不需要花费很多时间或精力。

Libraries / ListUtils.py

def substitute_values_in_list(list, value_to_substitute, substitute_to):
    return [substitute_to if ele == value_to_substitute else ele for ele in list]

然后在测试或关键字中:

*** Settings ***
Library    ../Libraries/ListUtils.py    

*** Test Cases *** 
Empty List Value
    ${list}=    Create List    1    2    ${None}
    Log To Console    ${list}
    ${new_list}=    Substitute Values In List    ${list}    ${None}    ${Empty}
    Log To Console    ${new_list}  

第一个控制台输出将是:

['1', '2', None]

,第二个带有替换值:

['1', '2', '']

您可以通过另一种方式对自定义关键字Substitute Values In List进行参数设置,以便将空字符串替换为None值或类似的值。