Robotframework 计算表达式';[<;selenium.webdriver.remote.webelement.webelement…错误

Robotframework 计算表达式';[<;selenium.webdriver.remote.webelement.webelement…错误,robotframework,Robotframework,我正在尝试验证演练弹出窗口,每次关闭时,我都会执行此关键字以再次打开它,但如果执行多次,则会出现错误。语法正确,因为我可以在其他TC中执行2-3次。有人能帮助我了解问题出在哪里吗 Open Walkthrough Guide If It is Closed ${ELEMS}= Get WebElements ${WELCOME_POPUP} Run Keyword If ${ELEMS} == @{EMPTY} Run Keywords ... Execute Ja

我正在尝试验证演练弹出窗口,每次关闭时,我都会执行此关键字以再次打开它,但如果执行多次,则会出现错误。语法正确,因为我可以在其他TC中执行2-3次。有人能帮助我了解问题出在哪里吗

Open Walkthrough Guide If It is Closed
${ELEMS}=    Get WebElements    ${WELCOME_POPUP}
Run Keyword If    ${ELEMS} == @{EMPTY}    Run Keywords
...    Execute Javascript    localStorage.setItem('peopleAnalyticsTourDismiss', 'false')
...    AND    Reload Page
错误代码

Evaluating expression '[<selenium.webdriver.remote.webelement.WebElement (session="461c3d8d360e2040589b1f70653b326d", element="3de37e69-02bd-4b76-8ff0-1bd652b952d7")>] == []' failed: SyntaxError: invalid syntax (<string>, line 1)
计算表达式“[]=[]”失败:语法错误:无效语法(,第1行)

如果您想在
${ELEMS}
为空列表时运行关键字,我建议您这样写:

Run keyword if  len($elems) == 0  ...
原因是,在表达式中,
${ELEMS}
不是元素列表,而是元素列表的字符串表示形式。使用
$ELEMS
是在表达式中使用实际对象的一种方法

从文件中:

当使用正常${variable}语法在表达式中使用变量时,其值将在表达式求值之前被替换。这意味着表达式中使用的值将是变量值的字符串表示形式,而不是变量值本身

此语法包含在的文档中,标题为