如何在Robot Framework中将字典元素的值设置为关键字的结果?

Ski*_*man 7 robotframework

我知道我可以使用这种格式$ {dict ['KEY']}从字典对象访问单个元素.像这样:

|   | Log | ${dict['KEY']} |
Run Code Online (Sandbox Code Playgroud)

我可以像这样设置一个常规的旧标量:

|   | ${scalar}= | RFKeyword | "Yowp"
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试设置这样的字典元素

|   | ${dict['KEY']}= | RFKeyword | "Yowp"
Run Code Online (Sandbox Code Playgroud)

我在变量中得到"RFKeyword","Yowp",而不是处理"Yowp"时RFKeyword产生的结果,就像我这样做

|   | ${scalar}= | RFKeyword | "Yowp"
Run Code Online (Sandbox Code Playgroud)

请帮助

小智 8

正如您可能已经想到的那样,您无法从关键字分配到字典.您需要非常具体地遵循字典语法.您只能将变量返回到列表或标量.

机器人框架不是一种完全成熟的编程语言,它不应该是.通过使用中间标量,非技术测试人员应该能够更好地理解它在做什么.

我添加了这个,因为谷歌搜索"机器人框架词典"在列表中有这个问题.只需创建字典:

Create dictionary | ${my_dict} | a | b
Run Code Online (Sandbox Code Playgroud)

添加到词典:

set to dictionary | ${my_dict} | c | d
Run Code Online (Sandbox Code Playgroud)

并从字典中检索:

${my_dict["a"]}
Run Code Online (Sandbox Code Playgroud)

或者,如果您不需要失败:

${my_dict.get('non-key','default value')}
Run Code Online (Sandbox Code Playgroud)


小智 3

您只需要重新排列您的调用方式即可。因此,对于您希望返回的数据进入字典的关键字,您需要执行以下操作:

${scalar}= | RFKeyword | "Yowp"
Set To Dictionary  | ${dict}  |  KEY    | ${scalar}
Run Code Online (Sandbox Code Playgroud)