gpt4 book ai didi

robotframework - 如何在机器人框架的 for 循环期间检查变量是否在列表中?

转载 作者:行者123 更新时间:2023-12-04 14:41:45 25 4
gpt4 key购买 nike

第一次在这里发帖。我有一种感觉,这是一个非常愚蠢的问题,但由于某种原因,我的代码一直失败,而且我无法指出哪里出了问题。

这是我所拥有的:

*** Settings ***
Library Selenium2Library
Library OperatingSystem
Library String
Library Collections


*** Test Cases ***
Test Robot Framework Logging
@{ALLOWED}= Create List /page1 /page2 /page3
${ControllersList}= Get File ${EXEC_DIR}/Resources/controllers.txt
@{PAGES}= Split to lines ${ControllersList}
:FOR ${PAGE} IN @{PAGES}
\ Run Keyword If '${PAGE} IN @{ALLOWED}' Log Testing WARN
[Teardown] Close Browser

这是输出:
Evaluating expression ''/page1 IN [u'/page1', u'/page2', u'/page3']'' failed: SyntaxError: invalid syntax (<string>, line 1)

如果我将条件更改为这样的内容,它会起作用:
'${PAGE} == /page1'

我查了 documentation并且似乎可以使用 IN 条件。我完全迷失在这里。任何提示?谢谢!

最佳答案

这是执行表达式的正确方法:

Run Keyword If  $PAGE in $ALLOWED  Log  Testing  WARN

通过删除引号和花括号,机器人能够在评估表达式时将 PAGE 和 ALLOWED 视为 Python 变量。

来自栏目 Evaluating ExpressionsBuiltIn library 的文档中:

Starting from Robot Framework 2.9, variables themselves are automatically available in the evaluation namespace. They can be accessed using special variable syntax without the curly braces like $variable. These variables should never be quoted, and in fact they are not even replaced inside strings.



此外,当使用像 Run Keyword If 这样的关键字时, 表达式必须是变量替换后的有效 python 表达式。因此,您必须使用运算符 in而不是 IN .后者仅供机器人使用 :FOR陈述。

例子
*** Variables ***
@{ALLOWED} /page1 /page2 /page3

*** Test Cases ***
Example that passes
${PAGE}= set variable /page1
Run Keyword If $PAGE in $ALLOWED
... pass execution ${PAGE} is allowed
fail ${PAGE} is not allowed

Example that fails
${PAGE}= set variable /page99
Run Keyword If $PAGE in $ALLOWED
... pass execution ${PAGE} is allowed
fail ${PAGE} is not allowed

关于robotframework - 如何在机器人框架的 for 循环期间检查变量是否在列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42591723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com