簡體   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