Robotframework 如何验证参数是否位于Robot框架中的已创建列表中
我已经在robot框架中编写了以下代码。如何验证${args}是否在${Mylist}中Robotframework 如何验证参数是否位于Robot框架中的已创建列表中,robotframework,Robotframework,我已经在robot框架中编写了以下代码。如何验证${args}是否在${Mylist}中 Create Article [Arguments] ${args} ${MyList}= Create List 'Federal News' 'EY News' Run Keyword If ${args} in ${MyList} Run keywords Click Element ${tab1_Xpath} AND Wait Unti
Create Article
[Arguments] ${args}
${MyList}= Create List 'Federal News' 'EY News'
Run Keyword If ${args} in ${MyList} Run keywords Click Element ${tab1_Xpath} AND Wait Until Page Contains Federal News
我正在从另一个文件调用createarticle${arg}
。如果我使用上面的脚本,我会得到错误
任何帮助都将不胜感激运行关键字if的第一个参数必须是有效的表达式。由于“in”周围有多个空格,robot认为
${args}
是表达式,而in
和${MyList}
是附加参数。要解决这个问题,您需要在“in”的两侧有一个空格
第二个问题是,您正在创建一个包含引号的字符串列表。我猜你不是真的想要那个。如果希望列表包含字符串联邦新闻
,则需要省略引号
最后,在变量替换之后,表达式需要是有效的python语法。由于要比较字符串,因此需要引用参数或使用特殊变量语法$args
。使用特殊语法通常是最好的解决方案,因为您不必担心变量本身是否包含引号
最后,我建议使用${arg}
而不是${args}
,因为它是标量而不是列表
假设您的数据实际上不包含引号,我会这样做:
Create article
[Arguments] ${arg}
${MyList}= Create List Federal News EY News
Run Keyword If $arg in $MyList Run keywords
... Click Element ${tab1_Xpath}
... AND Wait Until Page Contains Federal News
这样,您就可以像这样运行关键字:
Create article Federal News
运行关键字if的第一个参数必须是有效的表达式。由于“in”周围有多个空格,robot认为
${args}
是表达式,而in
和${MyList}
是附加参数。要解决这个问题,您需要在“in”的两侧有一个空格
第二个问题是,您正在创建一个包含引号的字符串列表。我猜你不是真的想要那个。如果希望列表包含字符串联邦新闻
,则需要省略引号
最后,在变量替换之后,表达式需要是有效的python语法。由于要比较字符串,因此需要引用参数或使用特殊变量语法$args
。使用特殊语法通常是最好的解决方案,因为您不必担心变量本身是否包含引号
最后,我建议使用${arg}
而不是${args}
,因为它是标量而不是列表
假设您的数据实际上不包含引号,我会这样做:
Create article
[Arguments] ${arg}
${MyList}= Create List Federal News EY News
Run Keyword If $arg in $MyList Run keywords
... Click Element ${tab1_Xpath}
... AND Wait Until Page Contains Federal News
这样,您就可以像这样运行关键字:
Create article Federal News
Bryan有一个完美的答案,这里有一个解决方法,通过使用以下来自集合库的关键字来完成同样的任务 1) 运行关键字和返回状态-对于关键字成功或失败,返回True或False 2) 列表应包含列表中的值检查项
Create article
[Arguments] ${arg}
${MyList}= Create List Federal News EY News
${status}= Run Keyword And Return Status List Should Contain Value ${mylist} ${arg}
Run Keyword If ${status}==True Run keywords
... Click Element ${tab1_Xpath}
... AND Wait Until Page Contains Federal News
Bryan有一个完美的答案,这里有一个解决方法,通过使用以下来自集合库的关键字来完成同样的任务 1) 运行关键字和返回状态-对于关键字成功或失败,返回True或False 2) 列表应包含列表中的值检查项
Create article
[Arguments] ${arg}
${MyList}= Create List Federal News EY News
${status}= Run Keyword And Return Status List Should Contain Value ${mylist} ${arg}
Run Keyword If ${status}==True Run keywords
... Click Element ${tab1_Xpath}
... AND Wait Until Page Contains Federal News
您得到的错误是什么?您传入的数据是否包含引号?换句话说,
${args}
是否类似于联邦新闻
或联邦新闻
?您得到的错误是什么?您传递的数据是否包含引号?换句话说,${args}
类似于联邦新闻
还是联邦新闻
?非常感谢布莱恩。就像一个魔咒一样,非常感谢你,布莱恩。它的工作就像一个魅力