Разница между Evaluate и SetVariable при работе со словарями RobotFramework - PullRequest
0 голосов
/ 03 декабря 2018

Я использую словарь в Robot Framework и пытаюсь получить значение, когда ключ дается.Кажется, это работает, когда я использую команду «SetVariable», но не когда я использую команду «Evaluate».Я также использую Python 2.7 и RIDE для работы с фреймворком Robot.Я искал в интернете ответ, но мне не повезло

** Variables **

&{Units_Lookup}    0=1    1=2    2=3    3=4    4=5    5=0    b=2

** Test Cases **

Experiment
    ${Counter}    Set Variable    1
    ${Value}    Set Variable    &{Units_Lookup}[${Counter}]
    Log To Console    \r${Value}
    ${Counter}    Evaluate    0+1
    ${Value}    Set Variable    &{Units_Lookup}[${Counter}]
    Log To Console    \r${Value}

1 Ответ

0 голосов
/ 03 декабря 2018

Важно знать разницу между типами переменных.В Python есть разница между строкой и целым числом.В вашем примере словаря ключи были строками, а результат вычисления - целое число.Преобразование всех целых чисел в их истинный тип в следующем примере:

** Variables **

&{Units_Lookup}    ${0}=1    ${1}=2    ${2}=3    ${3}=4    ${4}=5    ${5}=0    b=2

** Test Cases **

Experiment
    ${Counter}    Set Variable    ${1}
    ${Value}    Set Variable    &{Units_Lookup}[${Counter}]
    Log To Console    \r${Value}
    ${Counter}    Evaluate    0+1
    ${Value}    Set Variable    &{Units_Lookup}[${Counter}]
    Log To Console    \r${Value}

Если вы работаете с существующим кодом, тогда изменение последнего оператора Set Variable для преобразования ${counter} в ${Counter.__str__()} будет работать впреобразовать результат из Evaluate тоже.

** Variables **

&{Units_Lookup}    0=1    1=2    2=3    3=4    4=5    5=0    b=2

** Test Cases **

Experiment
    ${Counter}    Set Variable    1
    ${Value}    Set Variable    &{Units_Lookup}[${Counter}]
    Log To Console    \r${Value}
    ${Counter}    Evaluate    0+1
    ${Value}    Set Variable    &{Units_Lookup}[${Counter.__str__()}]
    Log To Console    \r${Value} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...