2017-01-12 13 views
2

Мне нужно обработать несколько типов данных из одного ключевого слова - которое вызовет другое необходимое ключевое слово в соответствии с определенным типом данных.Robot Framework: как узнать, что переменная является списком, словарем или обычным

Использование Evaluate type() полезно для списков и словарей, но сбой, когда у нас есть только строка без кавычек. Если я добавлю кавычки, данные будут определяться как строка все время - даже если они находятся в списке или словаре.

Например

${list}= Create List 1 two 
${type_list}= Evaluate type(${list}) 
# returns <type 'list'> 

${dict}= Create Dictionary first=1 second=two 
${type_dict}= Evaluate type(${dict}) 
# returns <type 'dict'> 

${string}= Set Variable withoutQuotes 
${type_string}= Evaluate type(${string}) 
# FAILS with: 
Evaluating expression 'type(withoutQuotes)' failed: NameError: name 'withoutQuotes' is not defined 

Не могли бы вы порекомендовать какой-нибудь способ, чтобы определить тип переменной, которая не подведет?

ответ

3

Запустить ключевое слово и статус возврата помог мне!

${passed}= Run Keyword And Return Status Evaluate type(${value}) 
${type}=  Run Keyword If  ${passed} Evaluate type(${value})