我可以在robotframework中使用关键字作为参数吗?

我可以在robotframework中使用关键字作为参数吗?,robotframework,keyword,robotframework-ide,Robotframework,Keyword,Robotframework Ide,我想将${assertion\u Keyword}替换为屏幕应包含或屏幕不应包含,因此我想像关键字一样放置一个参数 check_element_and_its_representation [Arguments] ${assertion_Keyword} ${payload} ${on_click_payload} ${assertion_Keyword} ${payload} SikuliLibrary.Click $

我想将${assertion\u Keyword}替换为
屏幕应包含
屏幕不应包含
,因此我想像关键字一样放置一个参数

check_element_and_its_representation      
    [Arguments]    ${assertion_Keyword}    ${payload}    ${on_click_payload}     
    ${assertion_Keyword}    ${payload}
    SikuliLibrary.Click    ${payload}    
    Screen Should Contain    ${on_click_payload} 
使用此代码,我编写了一个语法错误,未找到关键字:

这一行动如何可能?还有其他方法吗


谢谢。

Run关键字命令将帮助您实现这一点。下面是一个受示例代码启发的示例。我已经注释掉了Sikuli关键字,但保留了它们,并添加了两个关键字来模拟在Sikuly库中找到的关键字

*** Test Cases ***
TC Screen Should Contain
    Check Element And Its Representation    Screen Should Contain    payload    on_click_payload

TC Screen Should Not Contain
    Check Element And Its Representation    Screen Should Not Contain    payload    on_click_payload


*** Keywords ***

Check Element And Its Representation      
    [Arguments]    ${assertion_Keyword}=Screen Should Contain    ${payload}=None    ${on_click_payload}=None     
    Run Keyword    ${assertion_Keyword}    ${payload}
    # SikuliLibrary.Click    ${payload}    
    # Screen Should Contain    ${on_click_payload} 

Screen Should Contain
    [Arguments]    ${var}
    Log    Screen Should Contain

Screen Should Not Contain
    [Arguments]    ${var}
    Log    Screen Should Contain

所以在这种情况下,我们不能使用默认关键字而不重新定义它们?因为
屏幕应该包含
或者
屏幕不应该包含
需要一个参数,如果我使用
运行关键字${assertion\u Keyword}${argument\u to_take}
它不工作,因为参数编号的原因,这可以通过向参数添加默认值来完成。请看更新的示例。我不确定您是否理解我的意思?我们的目标是不重新定义
屏幕应包含的关键字和
屏幕不应包含的关键字,并在您希望调用它们来代替
${assertion\u Keyword}
时使用默认关键字。可能吗?是的。只需在示例中移除这些,然后加载Sikuli。这些只是占位符,因为我不想调用实际的占位符。