Присвоение переменных внутри Run Keyword If - PullRequest
2 голосов
/ 17 февраля 2020
\   Run Keyword If    ${i} == 7    log to console     Testing Variant 1
\   ${is visible}=    Run Keyword And Return Status    Element Should Be Visible   (//li[@class='_8HqL0'])[${i}]
\   Run Keyword If    ${is visible}  Run keywords
\   ...  Scroll Element Into View    (//li[@class='_8HqL0'])[${i}]
\   ...   AND     Click Element     (//li[@class='_8HqL0'])[${i}]
\   ...   AND     sleep  2s
\   ...    set variable   ${Ad_Path}  Get Text  //*[@class='rui-3blDo _1Uh38 _27AdP']
\   ...   AND     log to console    ${Ad_Path}

Привет! Я хочу использовать действие GET TEXT внутри блока IF в FOR, но при этом выдается ошибка с указанием имени ключевого слова, не может быть пустой справкой

1 Ответ

3 голосов
/ 18 февраля 2020

Вы не можете иметь конструкцию ${variable}= Returned Value From Keyword внутри Run Keyword / Run Keyword If, поскольку последняя ожидает, что все переданное ей будет ключевым словом - и она также считает ${variable} one.

Существует один «обходной путь» - Run Keyword If распространяет обратно на последнее возвращенное значение в его ключевом слове, и его можно установить в переменную. Например, вы можете сделать это:

${variable}=     Run Keyword If    ${condition}    Returned Value From Keyword    ELSE    Set Variable    other value

Запомните ELSE в этой конструкции - без нее, если условие ложно, переменная будет неопределенной - останется со значением None (данные введите).

Естественно, если Run Keyword If имеет более одного шага (например, журналы вашей консоли), вам придется разбить его - блок, который «делает что-то», и другой (или другие) это «присваивает значения».

Я набрал «обходной путь» в кавычках, потому что на самом деле это не так - это способ использования ключевого слова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...