将动态变量值从机器人框架传递到 python 文件

Pass dynamic variable value from robot framework to python file

我正在尝试将动态值从机器人框架传递到 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

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

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 |
------------------------------------------------------------------------------