【发布时间】:2017-05-18 18:21:35
【问题描述】:
我需要在机器人框架中有条件地执行一些关键字,但我不知道该怎么做,它不起作用。我尝试了很多选项,但我想我的“IF-ELSE”语句完全错误..
Choose Particular Filter ${FILTER} And Uncheck All Values
${bool}= is filter opened ${AVAILABLE FILTERS} ${FILTER}
${uncheck_all_button}= run keyword if "${bool}" == "True" uncheck all in filter ${AVAILABLE FILTERS} ${FILTER}
... click element ${uncheck_all_button}
... ELSE
... Set variable ${particular_filter}: find particular filter ${AVAILABLE FILTERS} ${FILTER}
... click element ${particular_filter}
... Set variable ${uncheck_all_button}: uncheck all in filter ${AVAILABLE FILTERS} ${FILTER}
... click element ${uncheck_all_button}
它失败了:Variable '${particular_filter}' not found.
但是如果我运行它,它甚至不应该去 ELSE 分支,因为 ${bool} 是 True...
我的自定义函数is filter opened 只是检查过滤器是否已经打开 - 如果是,则返回 True。
我的自定义函数uncheck all in filter 只返回“取消选中所有”按钮的 XPATH。
我的自定义函数find particular filter 返回“过滤器下拉菜单”按钮的 XPATH。
在这整个关键字中,我需要检查过滤器下拉菜单是否已经打开——如果是,那么我必须直接点击${uncheck_all_button},否则如果过滤器下拉菜单还没有打开,我需要先点击过滤器本身@ 987654327@ 之后我可以点击${uncheck_all_button}
我还尝试了“运行关键字”这一行:
${uncheck_all_button}= run keyword if "${bool}" == "True" Set Variable uncheck all in filter ${AVAILABLE FILTERS} ${FILTER}
或者这个:
run keyword if "${bool}" == "True" ${uncheck_all_button}= uncheck all in filter ${AVAILABLE FILTERS} ${FILTER}
我也试过${bool} == "True"和${bool} == True
但没有什么真正起作用,仍然是同样的错误:(
非常感谢您的帮助!
【问题讨论】:
-
我建议您使用“Log To Console ${bool}”查看它的值,然后添加条件。
-
当然,这是我做的第一件事——正如我所写,值为 True..所以不明白为什么它会转到 else 分支..
标签: python if-statement automated-tests robotframework