执行期间的自动转义字符在 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_idcontrol_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}