我目前正在使用 Robot Framework 来自动测试表单。为了提供表单数据,我使用如下字典:
*** Variables ***
&{TestCase1} key1=a key2=b key3=c key4=d
&{TestCase2} key2=x key3=y
我想做的是根据该测试用例的字典中是否存在匹配键来确定某些字段的填充,以便可选字段可以留空。我尝试运行以下关键字:
*** Keywords ***
Fill Form
[Arguments] &{TestCase}
Run Keyword If &{TestCase}[key1] Input Text id=field1 &{TestCase}[key1]
Run Keyword If &{TestCase}[key2] Input Text id=field2 &{TestCase}[key2]
Run Keyword If &{TestCase}[key3] Input Text id=field3 &{TestCase}[key3]
Run Keyword If &{TestCase}[key4] Input Text id=field4 &{TestCase}[key4]
...但无济于事。我收到此错误:
FAIL: Dictionary &{TestCase} has no key 'key1'.
...这在某种程度上是有道理的,因为事实并非如此,但这就是重点。我预计这会使条件评估为 False 并使 RF 跳过关键字。
任何人都可以解释为什么它不能以这种方式工作,以及是否有其他方法可以实现这一点?非常感谢任何帮助!
最佳答案
您需要检查键是否存在,而不是值。在 python 中,这看起来像 if 'key1' in TestCase
,所以在机器人语法中,它看起来像这样:
Run keyword if 'key1' in $TestCase Input Text ...
这是一个完整的示例。运行时,它应该添加“key1 按预期出现在日志中”,但不是“日志中意外出现了 bogus”
*** Variables ***
&{TestCase1} key1=a key2=b key3=c key4=d
&{TestCase2} key2=x key3=y
*** Test Cases ***
Example
Run keyword if 'key1' in $TestCase1 log key1 is in the log as expected
Run keyword if 'bogus' in $TestCase1 log bogus is unexpectedly in the log
关于python - 如果字典中存在键则运行关键字(机器人框架),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59775094/