在 If / Else 语句中将文本存储到标量中 - Robot Framework
Posted
技术标签:
【中文标题】在 If / Else 语句中将文本存储到标量中 - Robot Framework【英文标题】:Store Text into an Scalar within If / Else Statement - Robot Framework 【发布时间】:2020-11-24 00:57:37 【问题描述】:我想在 Robot Framework 中完成以下操作
我想将元素 xpath://*[@id="plsAttachGrid_0_1"]
中的文本存储到标量 $name3
中,但是该元素并不总是在网页上可用,因此,我需要运行 IF/ELSE 语句以避免元素不可用时的错误
我的想法如下:
$countt2= Get Element Count xpath://*[@id="plsAttachGrid_0_1"]
Run Keyword If $countt2>0
$name3= Get Text xpath://*[@id="plsAttachGrid_0_1"]
ELSE LOG NO_FILE
但是,我了解到不可能在 Run Keyword If
中存储到标量中,因为它需要 Keyword
。
那么,我该如何完成呢?
【问题讨论】:
您知道名为Set variable if的关键字吗? 【参考方案1】:Run Keyword If
中的关键字可以返回向上传播的值 - 例如可以赋值给放在Run Keyword If
之前的变量;所以在你的情况下:
$name3= Run Keyword If $countt2>0 Get Text xpath://*[@id="plsAttachGrid_0_1"]
所以现在$name3
将在$countt2>0
时返回Get Text
。
如果条件不满足,它的价值是多少?它将是 None
(数据类型,而不是字符串),因为现在声明了变量,但没有明确定义。
在这种情况下,您可以将其设置为不同的值,以便稍后在代码中更轻松地处理:
$name3= Run Keyword If $countt2>0 Get Text xpath://*[@id="plsAttachGrid_0_1"]
... ELSE Set Variable not_set # or $0, or any other value you need for $countt2<=0
【讨论】:
以上是关于在 If / Else 语句中将文本存储到标量中 - Robot Framework的主要内容,如果未能解决你的问题,请参考以下文章