【问题标题】:Robot framework: Lists should be equal problem with empty values: "None" and ''机器人框架:列表应该是空值的平等问题:“无”和“”
【发布时间】:2020-07-23 07:32:05
【问题描述】:

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

Excel 列表:[1, 'X', 'Y', 200, 1999, 'Z', 'W', 4, 'V', None, 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}

提前谢谢你

【问题讨论】:

    标签: excel list robotframework nonetype


    【解决方案1】:

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

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

    库/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 值或类似的东西。

    【讨论】:

      猜你喜欢
      • 2021-07-28
      • 2015-05-26
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      • 2020-10-29
      • 2020-10-22
      • 1970-01-01
      相关资源
      最近更新 更多