【问题标题】:Pass dynamic variable value from robot framework to python file将动态变量值从机器人框架传递到 python 文件
【发布时间】:2021-01-31 17:26:12
【问题描述】:

我正在尝试将机器人框架中的动态值传递给 python 文件中的变量(其中包含我的所有变量)。

在 .py 文件中,我有以下内容:

index = BuiltIn().get_variable_value("${iIndex}")
MyDynamicVar="xpath://div["+str(index)+"]"  #or without str

在 .robot 文件中我有:

    FOR  ${i}  IN RANGE  ${c}
            ${iIndex} =    Set Variable    ${i+1}
            log to console   ${MyDynamicVar}
            log to console    ***************************************
    END

我试图在机器人文件的变量部分中设置一个初始值,并且该值发生了变化,但我需要该值是动态的!

【问题讨论】:

    标签: python robotframework


    【解决方案1】:

    str.format 将为您解决问题,它会在变量文件中提供以下内容:

    MyDynamicVar="xpath://div[{}]"
    

    然后你可以使用Extended variable syntax在字符串上调用format函数,比如:

    *** Settings ***
    Variables    variables.py
    
    *** Test Cases ***
    Test
        FOR  ${i}  IN RANGE  5
                ${iIndex} =    Set Variable    ${i+1}
                log to console   ${MyDynamicVar.format(${iIndex})}
                log to console    ***************************************
        END
    

    您甚至可以简化为${MyDynamicVar.format(${i+1})}。结果如下:

    ==============================================================================
    Test
    ==============================================================================
    Test                                                                  xpath://div[1]
    ***************************************
    xpath://div[2]
    ***************************************
    xpath://div[3]
    ***************************************
    xpath://div[4]
    ***************************************
    xpath://div[5]
    ***************************************
    Test                                                                  | PASS |
    ------------------------------------------------------------------------------
    

    【讨论】:

    • @A.Han 我忘了提到一个变量文件在导入时会执行一次,所以后面的任何更改都不会生效。这就是为什么您的方法没有更新变量的原因。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2017-07-31
    • 1970-01-01
    • 2020-10-12
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多