【问题标题】:How to verify words one by one on a locator in Robot Framework?如何在机器人框架中的定位器上逐个验证单词?
【发布时间】:2020-12-04 19:05:09
【问题描述】:

我对机器人框架还是有点陌生​​,但请放心,我一直在阅读它的用户指南。我现在有点卡在一个测试用例上。

我确实有一个单独的单词列表,我需要在页面上进行验证,主要是字段标签的德语翻译,如果它们显示正确或是否在元素中找到。

我创建了一个列表变量如下:

@{GERMAN_WORDS} |贝努策 |密码 |森东 |交易 |通知

我有以下定位器,其中包含网页上的文本标签,以及我需要验证的定位器:

${GENERAL_GERMAN_BOARD} | xpath=//*[@id="generalAndIncidents:generalAndIncidentsPanel"]

我想从列表变量中逐个检查每个单词,它们是否存在于上面的定位器中。

我确实为此目的创建了以下关键字,但是我可能会遗漏一些东西,因为它调用了我的列表变量的全部内容,而不是一一检查其中的单词:

Block Text Verification
    [Arguments]    ${text_list_variable}    ${locator_to_check}

    Wait Until Element is Visible    ${locator_to_check}

    FOR    ${label}    IN    ${text_list_variable}
        ${labelTostring}    Convert to String    ${label}
        ${isMatching} =    Run Keyword and Return Status    Element Should Contain    ${locator_to_check}    ${labelTostring}
        Log    ${label}
        Log    ${isMatching}
        Exit For Loop If    '${isMatching}' == 'False'
    END 

我得到以下输出:

元素 'xpath=//*[@id="generalAndIncidents:generalAndIncidentsPanel"]' 应该 包含文本'['Benutzer', 'Passwort', 'Sendung', 'Transaktionen', 'Notiz']' 但它的文字是....(它列出了所有 来自我的定位器的文本)

所以,基本上不是逐字逐句查。

我在这里做错了吗?这是我在这里尝试做的不好的方法吗?

如果有人能提供一些关于我应该在这里做什么的提示,我将不胜感激!

非常感谢!

【问题讨论】:

    标签: loops for-loop robotframework


    【解决方案1】:

    你犯了一个小但关键的错误 - 这里的这一行中的变量:

    FOR    ${label}    IN    ${text_list_variable}
    

    ,应使用@:

    访问
    FOR    ${label}    IN    @{text_list_variable}
    

    RF 中的 for-in 循环期望循环值的 1 个或多个参数,@ 将列表变量扩展为其成员。

    【讨论】:

    • 哦,有道理!非常感谢您指出这一点!非常感激!现在,我将进一步开发此代码以实现我的目标 :) 再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2017-11-07
    • 2021-03-16
    • 2020-12-07
    • 2017-08-31
    • 2018-11-15
    • 1970-01-01
    相关资源
    最近更新 更多