Метод в методе в рамках робота - PullRequest
0 голосов
/ 16 мая 2019

Язык: python-3.7.3 Framework: Robot Framework-3.1.1 IDE: Pycharm Уровень знаний: Новичок

У меня есть пользовательский метод, написанный на python, который возвращает строку после замены совпадающих символов.

Строка: (12356,)

Символ для замены: (и, и)

символ замены: $ {пусто}

Ожидается: 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.

Я понял сообщение об ошибке, так как оно принимает метод внутри метода в качестве параметров.Так какой же правильный синтаксис должен соблюдаться в таких случаях.Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 16 мая 2019

Как говорит ошибка, ваша функция ожидает 3 аргумента:

  • str_var
  • replaceCharacter
  • символ toReplace

Однако выПередаешь шесть.Рассмотрим следующую строку кода:

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

Поскольку робот использует два или более пробела в качестве разделителя аргументов, это аргументы, которые он передает вашей функции:

  • [заменитьопределенный символ в строке
  • $ {response}
  • , $ {EMPTY})
  • $ {EMPTY}]
  • (
  • $ {EMPTY}

Если я понимаю, что вы пытаетесь сделать, вы хотите один раз вызвать ключевое слово, а затем снова передать результат этой функции ключевому слову.не позволю вам сделать это. Вам нужно будет дважды запустить ключевое слово, сохранив результат первого вызова и передав его второму.

Например:

${tmp}=  replace a specific character in a String    ${response}  (  ${EMPTY}
${response}=  replace a specific character in a String  ${tmp}  )  ${EMPTY}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...