#python-3.x #python-2.7 #robotframework #pywinauto
Вопрос:
У меня есть ключевое слово, как показано ниже, которое будет выполняться для каждого ключевого слова.
Ниже приведен код
*** Settings ***
Documentation Suite description
Test Template Templete key
Test Teardown Teardown key
*** Test Cases ***
Test case1
click element auto_id=1031 control_type=Button
*** Keywords ***
Templete key
[Arguments] @{args}
log ${Healing_Result}
run keyword if '${HR}'=='Error' or '${HR}'=='FAIL' fail
${status} ${ErrorMessage} run keyword if '${HR}'=='PASS' or '${status}'=='PASS' Run keyword and ignore error @{args}
... ELSE FAIL
run keyword if '${HR}'=='Error' fail
В log.html
Templete key right_click_element, title=${printer_Name}, control_type=ListItem
click element auto_id=1031, control_type=Button
Я не понимаю, почему мы видим
после auto_id
и control_type
Когда мы запускаем приведенный ниже код отдельно,он работает без проблем . Но когда мы работаем с шаблоном , я сталкиваюсь с этой проблемой .
click element auto_id=1031 control_type=Button
Ответ №1:
Это связано с тем , что вы определили ключевое слово с переменными аргументами — @{args}
, хотя, вероятно, думаете об именованных аргументах («аргументы ключевых слов» в python).
Таким образом, когда вы передаете ему «auto_id=1031», это просто строка, в которой случайно присутствует знак равенства, а не «параметр auto_id должен иметь значение 1031»; и также из-за этого он ускользает от символа=.
Чтобы исправить это, просто используйте именованные аргументы:
Templete key
[Arguments] ${kw} amp;{args}
, и внутри него:
Run keyword and ignore error ${kw} amp;{args}