Как использовать условие if / else внутри цикла FOR в среде робота - PullRequest
0 голосов
/ 14 декабря 2018

Это мой код:

:FOR    ${a}    IN RANGE    2    ${Row_Count}

\    Run Keyword If    '${temp}'== 'True'    Click Link    xpath=//table[@id='listAllSTR']/tbody/tr[${a}]/td[2]/a    and 
\    ...    Screen validation for Answered    ${STR_detail}    and
\    ...    ELSE    Continue For Loop
\    Run Keyword If    ${a}>${Row_Count}   Exit For Loop**

Когда условие if проходит (т.е., если '$ {temp}' == 'True'), мне нужно нажать на ссылку, но я получаюошибка:

Ключевое слово 'Selenium2Library.Click Link' ожидал 1 аргумент, получил 5.

Я не знаю, что делать.

Кто-нибудь может мне помочь?

Ответы [ 2 ]

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

О проблеме.

В вашем операторе if выполняется несколько ключевых слов, поэтому в качестве аргументов для первого используются другие ключевые слова.

Решение

Вы можете создать собственное ключевое слово и добавить к нему другие ключевые слова.Используйте это пользовательское ключевое слово в своем операторе if.см. пример ниже.

*** Keywords ***
Custom Keyword From If
    [Documentation]    Keywords documentation.
    keyword1
    keyword2

*** Test Cases ***
Test Custom Keyword
    Run Keyword If    '${a}'=='True'    Custom Keyword From If

ПРИМЕЧАНИЕ:

Для выполнения нескольких ключевых слов у робота есть ключевое слово «выполнить ключевые слова», см. документацию ссылка

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

в среде роботов ... используются для продолжения кода на следующей строке как часть предыдущей строки в примере, который вы пытаетесь после ключевого слова click link, которое вы добавляете ... , которыйвызывая эту ошибку, удалите их, и ваш код начнет работать.
ключевое слово click link принимает только один параметр в качестве локатора, в вашем случае он считает следование строкам в качестве параметра

:FOR    ${a}    IN RANGE    2    ${Row_Count}

\    Run Keyword If    '${temp}'== 'True'    Click Link    
xpath=//table[@id='listAllSTR']/tbody/tr[${a}]/td[2]/a   
\    Screen validation for Answered    ${STR_detail}   
\    ELSE    Continue For Loop
\    Run Keyword If    ${a}>${Row_Count}   Exit For Loop

edit
новый синтаксис цикла for

FOR    ${a}    IN RANGE    2    ${Row_Count}

    Run Keyword If    '${temp}'== 'True'    Click Link    
xpath=//table[@id='listAllSTR']/tbody/tr[${a}]/td[2]/a   
    Screen validation for Answered    ${STR_detail}   
    ELSE    Continue For Loop
    Run Keyword If    ${a}>${Row_Count}   Exit For Loop
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...