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