执行期间的自动转义字符在 Robot Framework 中造成问题
Automatic Escape character during execution is creating issue in Robot Framework
我有一个关键字如下,每个关键字都会执行。
下面是代码
*** 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
这是因为您使用 variable arguments - @{args}
定义了关键字,同时可能考虑了命名参数(python 中的“关键字参数”)。
因此,当您将“auto_id=1031”传递给它时,它只是一个恰好包含等号的字符串,而不是“参数 auto_id 应该具有值 1031” ;也正因为如此,它逃脱了 = char.
要修复它,只需使用命名参数:
Templete key
[Arguments] ${kw} &{args}
,里面是:
Run keyword and ignore error ${kw} &{args}
我有一个关键字如下,每个关键字都会执行。
下面是代码
*** 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
这是因为您使用 variable arguments - @{args}
定义了关键字,同时可能考虑了命名参数(python 中的“关键字参数”)。
因此,当您将“auto_id=1031”传递给它时,它只是一个恰好包含等号的字符串,而不是“参数 auto_id 应该具有值 1031” ;也正因为如此,它逃脱了 = char.
要修复它,只需使用命名参数:
Templete key
[Arguments] ${kw} &{args}
,里面是:
Run keyword and ignore error ${kw} &{args}