在带有 Selenium 的 Robotframework 中具有条件功能的条件 IF

Conditional IF with function in condition in Robotframework with Selenium

我想知道是否有人找到了在 IF 条件下调用函数的方法。

我的目标是做类似

的事情
${etat}=    Set Variable If    Page Should Contain Element    xpath=//*[@id="${status}"]    3    OUV   FER

函数Page Should Contain Element xpath=//*[@id="${status}"] 3运行良好,如果不存在则失败。我只是想知道这个实际项目是否存在,并根据状态做一件事或另一件事。在我的例子中,return 标签 OUV 或 FER 取决于当前状态。

现在,这给了我一个错误:

Evaluating expression 'Page Should Contain Element' failed: SyntaxError: invalid syntax (<string>, line 1)

robotframework 的文档不是很好,我找不到制作它的方法。

我想使用他们的函数而不是自定义函数来完成它,因为我不想使用 JS 访问浏览器并从外部检查元素。

谢谢

您应该使用 "Run Keyword And Return Status" 关键字来获取关键字的状态。

在下面的脚本中,如果元素存在,第一行将为 True。

${Status}=     Run Keyword And Return Status   Page Should Contain Element    xpath=//*[@id="${status}"]
${etat}=    Set Variable If    '${Status}'=='True'    OUV    FER