Как сделать объединение строк в списке с роботизированной рамкой - PullRequest
0 голосов
/ 26 июня 2019

Я хочу выполнить конкатенацию строк с каждым перечисленным значением в каркасе робота.

Я использую поездку, например:

${list} | Create List | a | b | c |

Я хочу получить новый список, например:

${list1} | a•optional | b•optional | c•optional

как мне это сделать?

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Вы можете использовать ключевое слово Evaluate с однострочным выражением Python, Добавление той же строки к списку строк в Python .

*** Test Cases ***
Catenate
    ${list}=    Create List   a   b   c
    Log Many    @{list}
    ${new list}=    Catenate List Items    ${list}    •optional
    Log Many    @{new list}

*** Keywords ***
Catenate List Items
    [Arguments]    ${list}    ${catenate with}
    ${new list}=    Evaluate    [s + '${catenate with}' for s in ${list}]
    [return]    ${new list}

Или вы можете создать другое пользовательское ключевое слово, которое использует Robot Framework вместо Python. Например:

  1. Передайте исходный список и строку, которая должна быть добавлена ​​к пользовательскому ключевому слову.
  2. Сделайте копию.
  3. Выполните итерацию по двум спискам и обновите значения в новом.

*** Settings ***
Library    Collections

*** Test Cases ***
Catenate
    ${list}=    Create List   a   b   c
    Log Many    @{list}
    ${new list}=    Catenate List Items    ${list}    •optional
    Log Many    @{new list}

*** Keywords ***
Catenate List Items
    [Arguments]    ${list}    ${catenate with}
    ${new list}=    Copy List    ${list}
    ${list length}=    Get Length    ${new list}
    FOR    ${i}    IN RANGE    ${list length}
        # last parameter will be the new, catenated value
        Set List Value    ${new list}    ${i}    ${list[${i}]}${catenate with}
    END
    [return]    ${new list}

Вы можете использовать Расширенный синтаксис переменной , чтобы получить доступ к значению элемента списка по определенному индексу. ${list[${i}]} это фактически означает, что вы получаете предмет в позиции ${i} от ${list}. Объединение может быть сделано просто путем передачи элемента списка и строки суффикса без пробелов в качестве нового значения списка, ${list[${i}]}${catenate with}. Первый подход определенно более удобен.

1 голос
/ 26 июня 2019

Вы можете использовать пользовательское ключевое слово, чтобы добиться того, что вы можете либо передать объект списка ключевому слову в качестве аргумента, либо создать его в python, который вам когда-либо подходит

ListHelper.py

def Catanate_Items_In_List(myList = []):
  string="•optional"
  output = ["{}{}".format(i,string) for i in myList]
  return output

А потом в роботе вы можете сделать:

*** Settings ***
Library  ListHelper.py


*** Test Cases ****
Catanate to Every string In a List
   ${list}  Create List  a  b  c 
   ${list1} =   Catanate Items In List   ${list}
   log  ${list1}

Результаты:

${list1} = ['a•optional', 'b•optional', 'c•optional']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...