繁体   English   中英

机器人框架中方法中的方法

[英]Method within a method in robot framework

语言: python-3.7.3 框架: Robot Framework-3.1.1 IDE: Pycharm 熟练程度:新手

我有一个用python编写的用户定义方法,该方法在替换匹配的字符后返回字符串。

字符串: (12356,)

要替换的字符:(和,和)

replacecharacter: $ {空}

预期: 123456

方法:

def replace_a_specific_character_in_a_String(self, str_var, replacingCharacter, charactertoReplace):
    str = str_var.replace(replacingCharacter, charactertoReplace)
    return str

我希望从我的机器人文件中调用以下相同的方法。

${response}=    replace a specific character in a String    [replace a specific character in a String    ${response}    , ${EMPTY})   ${EMPTY}]     (        ${EMPTY}

这引发以下错误

Keyword 'Methods.Replace A Specific Character In A String' expected 3 arguments, got 6.

我理解错误消息,因为它将方法内部的方法作为参数。 那么在这种情况下应遵循的正确语法是什么。 请指教。

如错误所示,您的函数需要3个参数:

  • str_var
  • replacingCharacter
  • charactertoReplace

但是,您要通过六次。 考虑以下代码行:

replace a specific character in a String    [replace a specific character in a String    ${response}    , ${EMPTY})   ${EMPTY}]     (        ${EMPTY}

由于robot使用两个或多个空格作为参数分隔符,因此这些是它传递给函数的参数:

  • [替换字符串中的特定字符
  • $ {}响应
  • ,$ {EMPTY})
  • $ {EMPTY}]
  • $ {EMPTY}

如果我了解您要执行的操作,则想一次调用该关键字,然后将该函数的结果再次传递给该关键字。 机器人不允许您这样做。 您必须运行两次关键字,保存第一次调用的结果并将其传递给第二次。

例如:

${tmp}=  replace a specific character in a String    ${response}  (  ${EMPTY}
${response}=  replace a specific character in a String  ${tmp}  )  ${EMPTY}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM