Robotframework:如何使用定义下一个参数的嵌入变量构建合适的关键字?

Robotframework:如何使用定义下一个参数的嵌入变量构建合适的关键字?,robotframework,Robotframework,我将尽力解释我的新问题。 我必须构建关键字,该关键字应包括2个变量: 要检查的元素数 这些元素的列表及其说明 此类关键字的示例: Check number all elements and names and the url each of them [3, "element1 /img/el1.jpg element2 /img/el2.jpg element3 /img/el3.jpg"] 简单地说:我必须首先检查我是否有3个元素,然后检查每个元素的属性名称和url 这些属性看起来像“列表

我将尽力解释我的新问题。 我必须构建关键字,该关键字应包括2个变量:

  • 要检查的元素数

  • 这些元素的列表及其说明

  • 此类关键字的示例:

    Check number all elements and names and the url each of them [3, "element1 /img/el1.jpg element2 /img/el2.jpg element3 /img/el3.jpg"]
    
    简单地说:我必须首先检查我是否有3个元素,然后检查每个元素的属性名称和url

    这些属性看起来像“列表”,对吗?
    你对如何解决我的问题有什么想法吗?

    你接近解决方案了,你需要使用列表。因为Robot框架知道列表长度,所以不需要将其作为参数

    以下是一种可能的解决方案:

    *** Settings ***
    Library           Collections
    
    *** Keywords ***
    Check Elements
        [arguments]    ${elementlist}
        ${listlen}=    Get Length    ${elementlist}
        ${pairs}=      Evaluate    ${listlen} / 2
        :FOR    ${element}    IN RANGE    ${pairs}
        \    ${element}       Remove From List    ${elementlist}    0
        \    ${description}   Remove From List    ${elementlist}    0
        \    Log     Check element and description here
    
    *** Test Cases ***
    ListTest
        @{elementlist}=    Create List    element1   /img/el1.jpg   element2   /img/el2.jpg   element3  /img/el3.jpg
        Check Elements    ${elementlist}
    

    现在我更接近解决我的问题了,但是。。。我需要在列表之前给出一个数字来进行双重检查-第一:我有正确的所有元素的数量,第二:它们都有正确的值。还有一个问题-有没有办法创建这样一个列表,元素直接在关键字中,就像我在第一篇文章中写的那样?如果元素之间用空格分隔,您应该能够像这样使用“Split String”关键字:@{elementlist}=Split String element1/img/el1.jpg element2/img/el2.jpg element3/img/el3.jpg。拆分字符串在字符串库中,但是有没有办法创建这样的关键字:检查所有元素和名称的编号以及它们各自的url[3,“element1/img/el1.jpg element2/img/el2.jpg element3/img/el3.jpg”]?我立即在关键字中声明列表。可能吗?下一步-由于不可能使用“nested for”,我应该如何检查列表中的元素数(在关键字-3的第一个变量之后)是否等于3(第一个变量值)?我不明白关键字的“check number”部分是什么意思。你能更新你的问题并用伪代码写下你想要发生什么吗?一个“元素”是什么?它是一个带有名称和路径的字符串吗?当你说“检查属性名称和url”时,那是什么意思?你在查什么?您如何知道“element1/img/el1.jpg”是有效的?是否因为两者都包含数字“1”?还有,这是否有一个原因必须是一个关键字而不是两个--一个用于检查数字,一个用于检查列表中的每个值?@BryanOakley,我已经尝试在Pekka的评论下面回答:)