我正在尝试最小化我的机器人关键字,在我的网址测试中,我有时必须从一组输入中建立一个URL,这可能会因测试而异。长度可以是4到7个输入参数,我连接传回一个URL,传入任何输入参数。
如果我有关键字执行以下操作:
inputs: ${location01} ${location02} ${location03}=${EMPTY} ${location04}=${EMPTY}
${my_url} = Catenate SEPARATOR=/ ${location01} ${location02} ${location03} ${location04}
[Return] ${my_url}
测试$ {location03}是否为空的最佳方法是什么,因此我可以跳过其余的?
当我尝试测试$ {EMPTY}时,以下内容将为false
${my_url} Run Keyword IF '${location03}'!='${EMPTY} Catenate SEPARATOR=/ ${location01} ${location02} ${location03} ${location04}
我仍然得到一个链接的字符串,但结尾处有额外的/,所以$ {my_url}看起来像:
${my_url} = ${location01}/${location02}//
我想要的时候:
${my_url} = ${location01}/${location02}
我可能不知道机器人是如何进行检查,并初始化我的变量,我确信有一种方法可以做到这一点,目前正在躲避我。
答案 0 :(得分:4)
听起来你需要使用@ {args}来处理可变数量的参数:
*** Keywords ***
Create URL
[Arguments] @{args}
${url}= Catenate SEPARATOR=/ @{args}
*** Test Cases ***
Test Url
Create URL http://stackoverflow.com questions robotframework
Create URL http://stackoverflow.com questions