【问题标题】:IF - ELSE Condition in Robot FrameworkIF - Robot Framework 中的 ELSE 条件
【发布时间】:2020-01-03 17:11:02
【问题描述】:

我想在 For 循环中使用 If Else Condition。如果满足该条件,则执行函数名称“Success1”。 Success1 正在返回一些输出。我在测试套件的 Keyword 部分下维护了 Sucess1 关键字。

'''code'''
***TestCase***
${Total}  set variable  0
:FOR   ${i}   IN RANGE   1  ${RCount}
    \     log to console  ${Total}
    \     ${CountryName} =  get text   //table[@id='resultTable']/tbody/tr[${i}]/td[4]
    \     log to console   Captured country name ${CountryName}
    \     run keyword if   '${CountryName}' == 'United States'  ${TempValue} =  Success1  ${i}  ${Total}
    \     ${Total} =  set variable  ${TempValue}
          sleep  ${timeout}
*** Keywords ***
Success1
    [Arguments]   ${i}  ${Total}
          ${Emp} =  get text  //table[@id='resultTable']/tbody/tr[${i}]/td[6]
          ${Emp} =  convert to integer  ${Emp}
          log to console  Captured No. of Employees ${Emp}
          ${Total} =  Evaluate  ${Emp}+${Total}
          log to console  ${Total}- Final Value

注意:

这个 for 循环在一个测试用例下。 Sucess1 是我为执行操作而创建的关键字。函数的输出将保存到“TempValue”变量中。

在执行此代码时,我收到“未找到名称为 '=' 的关键字。”错误。

在此先感谢...

【问题讨论】:

    标签: python-3.x robotframework


    【解决方案1】:

    让我们看看这一行:

    run keyword if   '${CountryName}' == 'United States'  ${TempValue} =  Success1  ${i}  ${Total}
    

    机器人解析 this 的方式是,如果条件为真,它将运行名为 ${TempValue} = 的关键字,如果 ${TempValue} 是空字符串,则意味着它将尝试运行关键字 =。由于该名称没有关键字,机器人会给出错误“没有名称为'='的关键字。

    换句话说,您不能在run keyword if 内分配变量。条件之后的下一个单元格必须是关键字名称。

    【讨论】:

    • 谢谢,Bryan... 是否有任何解决方法可以解决此问题。 Success1 函数将返回“Total”,我将在 TestCase 的主函数中使用它进行进一步迭代?
    【解决方案2】:

    尝试如下:

    ${TempValue} =    Run Keyword If    '${CountryName}'=='United States'  Success1    ${i}    ${Total}
    

    【讨论】:

      猜你喜欢
      • 2021-12-17
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 2020-11-24
      相关资源
      最近更新 更多