【问题标题】:could not use variable get from txt file in robot framework无法在机器人框架中使用从 txt 文件中获取的变量
【发布时间】:2018-08-03 04:43:53
【问题描述】:

我尝试从 txt 文件中获取变量 ${var_Master} 并将其放入列表框中,${ValSub} 工作正常,但我在 var ${var_Master} 上遇到错误:

**InvalidSelectorException:消息:无效选择器:指定了无效或非法的选择器(会话信息:chrome=64.0.3282.167) (驱动信息:chromedriver=2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87af1),平台=Windows NT 10.0.14393 x86_64)

使用以下代码示例:

  ${var_sub}    Get File    ../resources/var_sub.txt
 @{list}    Split To Lines  ${var_sub}
 ${var_Master}    Get File    ../resources/var_master.txt
 :FOR       ${line}    IN      @{list}

 \   ${ValSub}=   Get Variable Value  ${line}
 \   sleep      1s
 \  select from list by value       name=merchant_id     ${ValSub}
 \  select from list by value       name=master_marchant_id     ${var_Master}

【问题讨论】:

    标签: automated-tests robotframework


    【解决方案1】:

    我用这个方法来解决我的问题

    ${var_master}    Get File    ../resources/var_master.txt
         @{list}    Split To Lines  ${var_master}
         :FOR       ${lineb}    IN      @{list}
         \   ${ValMas}=   Get Variable Value  ${lineb}
        ${var_sub}    Get File    ../resources/var_sub.txt
         @{list}    Split To Lines  ${var_sub}
    
         :FOR       ${line}    IN      @{list}
         \   ${ValSub}=   Get Variable Value  ${line}
    
         \   sleep      1s
         \   select from list by value       name=master_marchant_id     ${ValMas}
         \   select from list by value       name=merchant_id     ${ValSub}
    

    【讨论】:

    • 在这种方法中,我不理解使用Get Variable Value 然后继续使用Convert To String 的部分。在我看来,${line} 已经拥有一个字符串值,因此不需要任何转换和转换。
    • 是的,我忘记删除那行了。我只是为了测试。
    • 在这个例子中也应该不需要使用Get Variable Value。因为${line}${valSub} 都是常规变量,并且具有完全相同的值。
    【解决方案2】:

    在 Robot Framework 中,不需要创建自定义导入例程来创建变量,因为它有一个标准关键字:Import Variables (Documentation)。

    在下面的示例中,我使用 YAML 标记语言中的文件,该文件允许创建特定的 Python 和 Robot variable types,例如人类可读格式的列表、字典和标量。也可以导入声明对象的 python 文件。

    在此示例中,我创建了一个模拟标量变量master 和一个模拟列表变量list 来证明循环是可能的,并将Select From List By Value 模拟为自定义关键字。

    vars.yaml

    master: master value
    
    list:
      - item 1
      - item 2
      - item 3
    

    example.robot

    *** Test Cases ***
    TC1
        Import Variables    ${EXECDIR}/vars.yaml
    
        :FOR       ${line}    IN      @{list}   
        \   sleep      1s   
        \   select from list by value       name=master_marchant_id     ${master}   
        \   select from list by value       name=merchant_id     ${line}    
    
    *** Keywords *** 
    Select From List By Value
        [Arguments]    ${locator}    ${value}
        Log    Selecting "${value}" from "${locator}" element.
    

    【讨论】:

    • 是的,谢谢,但是我的 txt 文件中的 Var 是通过机器人 Append file 获取的。那么我可以将我的 var 附加到 vars.yaml 吗?
    • 在上面的例子中,变量文件是由 Robot Framework 中的测试用例导入的。您可以使用Import Variables 关键字来导入存储在 Python 文件和 YAML 文件中的变量。您的文件是否可以完全转换实际上取决于内容以及它在其他地方的使用,但我相信它可以被替换。
    猜你喜欢
    • 2020-12-07
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2016-05-11
    相关资源
    最近更新 更多