Robot Framework: параметризованные элементы графического интерфейса

в Katalon — очень удобный способ параметризации селекторов для элементов графического интерфейса, так что вы можете легко выбирать очень похожие элементы с помощью аргументов справки. Я хочу сделать что-то подобное в Robot Framework.

РЕДАКТИРОВАТЬ: Лучший пример, который легче понять:

У нас есть несколько элементов графического интерфейса, с которыми мы должны взаимодействовать при тестировании. Поскольку селекторы элементов очень похожи, мы хотим параметризовать определенные его части. В этом случае мы хотим параметризовать часть $(selector) селектора:

*** Variables ***
$(overview.element}    //div[contains(@class, $(selector)')]

Мы хотим иметь возможность сделать это, чтобы мы могли избежать чего-то подобного

*** Variables ***
$(overview.home}    //div[contains(@class, home')]
$(overview.settings}    //div[contains(@class, settings')]
$(overview.overview}    //div[contains(@class, overview')]

Мы хотим указать этот параметр в тестовых примерах. Средства: мы можем указать, какой элемент мы хотим выбрать. Что-то такое:

    [Arguments]   ${selector}
Click    $(overview.element)(${selector})

Это возможно? И если да: как?


person Faram    schedule 27.09.2018    source источник
comment
В чем именно заключается ваш вопрос?   -  person Michael Cox    schedule 27.09.2018
comment
Можете ли вы убрать отрицательный голос, пожалуйста? Я отредактировал его намного лучше, и я хочу, чтобы люди его прочитали (я отредактировал его почти сразу после того, как увидел беспорядок, который написал)   -  person Faram    schedule 27.09.2018
comment
Почему вы отметили этот Python? Кажется, что это не имеет ничего общего с тем, что вы пытаетесь сделать. Вы используете Каталон, верно?   -  person Michael Cox    schedule 27.09.2018
comment
Раньше я использовал D katalon для выполнения этой задачи. Сейчас я использую Robot Framework (фреймворк для тестирования, написанный на Python).   -  person Faram    schedule 27.09.2018
comment
Можете ли вы дать нам небольшой пример кода того, что у вас есть на Python?   -  person Michael Cox    schedule 27.09.2018
comment
У меня ничего не написано на Python. Ну я просто удаляю этот тег...   -  person Faram    schedule 27.09.2018


Ответы (1)


Вы можете использовать встроенное ключевое слово Заменить переменные для выполнения подстановка перед использованием локатора. Чтобы это работало, вам нужно избежать ссылки на переменную при определении ${overview.element}

Пример:

*** Variables ***
${overview.element}    //div[contains(@class, \${selector}')]

*** Keywords ***
Example keyword
    [Arguments]  ${selector}
    ${locator}=  Replace variables  ${overview.element}
    log  locator is ${locator}

*** Test cases ***
Example
    example keyword  settings

Когда вы запустите вышеуказанное, журнал должен показать это:

введите здесь описание изображения

person Bryan Oakley    schedule 27.09.2018