在 robotframework 中调用关键字时如何限制预定义的参数值

How to restrict with predefined argument values while calling a keyword in robotframework

使用robotframework。定义了一个 keyword,它有两个输入参数,如下所述:

  1. searchFor - 用户想要搜索的任何字符串。
  2. searchBy - 此处可以根据此值进行搜索,例如 name, id, email 等。

此处 searchBy 仅适用于如上所述的预定义(有效)值。

问题: 是否可以限制调用者仅使用关键字并将有效值作为 searchBy 参数的参数值?否则会抛出错误并显示错误消息,可能是说无效值。 (比如 java 中的 enum

您可以使用 Evaluate 检查变量是否具有受支持的值:

*** Keywords ***
| Find something
| | [Arguments] | ${searchFor} | ${searchBy}
| | run keyword if | '${searchBy}' not in ('name', 'id', 'email')
| | ... | Fail | searchBy '${searchBy}' is invalid: must be 'name', 'id' or 'email'