Robotframework question: Random choiсe in select

Всем привет, столкнулся с проблемой рандомного выбора элемента с селекта средствами роботфреймворка.
структура следующая: 2016-03-22_1114
#получаю список элементов:
@{LIST_VALUES} Get List Items name=field_category[und]
Log To Console List: @{LIST_VALUES}
#сам список с логов:
@{LIST_VALUES} = [ - Select a value - | Interview | Guide | Reviews | Reports | Student Life ]

Как теперь реализовать random choise со списка с помощью робота?

п.с. попробовал написать в своей библиотеке вот такой код на питоне:
def random_choice(list_terms):
rand_item = random.choice(list_terms)
return random.choice(rand_item)

в робот файле:
@{LIST_VALUES} Get List Items name=field_category[und]
${result} random choice @{LIST_VALUES}

Но когда передаю список в функцию получаю ошибку, что передаются элементы списка как параметры(проблема с преобразованием типов данных?):
Keyword ‘CustomLogic.Random Choice’ expected 1 argument, got 6.

Решено. Передал правильно параметр в random_choice. Правильно передавать с таким же именем: ${result} random choice list_terms=@{LIST_VALUES}

Кейворд:

Library   Libs/CustomLogic.py    
Get Random Category Term Name    
        @{LIST_VALUES}  Get List Items  name=field_category[und]
        ${result}  random choice  list_terms=@{LIST_VALUES}
        [Return]  ${result}

CustomLogic.py:

def random_choice(list_terms):
    del list_terms[0]
    rand_item = random.choice(list_terms)
    return rand_item

п.с. дополнительно еще удаляю первый элемент в списке. В самом тесте использовал Select From List By Label и подставлял туда ${result}

1 лайк

Вроде можно было без библиотеки через стандартный кейворд evaluate вызвать random. Но это так, на будущее :slight_smile:

2 лайка