zoukankan      html  css  js  c++  java
  • robot framework :List Variables-List变量及其用法

    【转自:https://blog.csdn.net/yezibang/article/details/52692342】

    这一讲我们重点来介绍List Variables-List变量及其用法。

    一、List变量及其用法

     在我们前面几篇文章里用到了很多List变量,相信以后各位也会碰到需要使用的地方。

    1、List变量赋值

    和Scalar类似的赋值,除了用Set Variable还可以用Create List。

     

    运行一下:

     

     

    2、List变量使用

    在使用上要注意看关键字的参数到底是Scalar的还是List,区别就是看变量名前面是否有 * (星号),如图:

    这个关键字的name就是支持传入Scalar型的参数,*args就是支持可以传入List型值的。

    所谓List型值其实是说支持多个值,即不确定个数的,List-like一样的值,如下图的2、3行:

     

     

    当然,并不是说没有星号的就不能用List的,只要是多个变量就可以用List传值。

    像Log这个关键字,他有2个Scalar型的传入参数,如果我想传List也是可以的,但是必须是一个有2个元素的List,因为Log的第二个参数有默认值,所以如果你传入1个元素的List也是可以的,但是如果传入3个元素的List,那么就会报错了。

    你可以写成上面这样,但是我并不推荐这种做法,这里只是为了讲解List的作用而做的示范。

     

    综上,对于有多个参数的关键字,你可以按照需要传入多个Scalar变量,也可以传入List变量,根据你自己的需要选择合适的方式。

     

    二、变量转换

    之前提过了Scalar变量用 $ 作为标识符,List型变量用 @ 作为标识符,而且他们是可以进行转换的,理论上可以互相进行转换,但是也有一点限制。

    1、List变量转换成Scalar

    这种转换的效果是把整个List变成一个Scalar,我觉得作用主要是对于那些只接收Scalar变量参数的关键字,而你又想传List的全部值的时候,或者其他你需要的把List当作Scalar的情况下使用。例如Fail关键字,他的msg这个参数只能接收Scalar变量。

     

    如果你想用Fail,把f这个变量的值都打出来,下面这样写是肯定会报错的。

    报错信息为 Keyword 'BuiltIn.Fail' expected 0 to 1 arguments, got 3.

    那么我们转换一下,这样写就不报错了。

    运行结果:

    2、Scalar变量转换成List

    其实以前介绍用户关键字的时候也演示过,对于返回值是List的关键字,如果你给要赋值的变量写的是Scalar的,他会自动把他变成List的。

    还是上面这个例子,我们把@{f}改成${f}

    这样也是OK的。

    3、转换的限制

    但是,我前面提到了,转换是有一点限制的。

    首先,上一讲提到了,变量要进行赋值(类似于初始化)之后才能使用,如果没有进行过赋值的RIDE里会有颜色提示,用一个前面的图

    图中的紫色${f}就是提示你他没有进行过赋值,此时而系统会默认他就是@{f}的Scalar形式,这个可以看上面的执行结果。

    那么这个限制就在Scalar转换成List的地方,系统会默认${f}是@{f}的Scalar形式,但是他并不会默认@{f}是${f}的list形式,即使${f}已经是list了。

    看一下例子:

     

     这样写的话运行就会报错:Non-existing variable '@{f}'.

    那这时候${f}有什么用呢?除了前面介绍的作为Scalar型变量,值是所有元素,还可以根据index直接获得某个元素。

    例如:

    运行结果:

    看完上面的限制之后,还要补充一点,系统会默认${f}是@{f}的Scalar形式,这个也是有限制,必须是${f}没有被赋值过的情况,如果${f}被赋值过是什么情况呢?

    看看例子:

    你觉得${f}会是什么值呢?

    所以,这里要注意,尽量不要让Scalar和List的变量重名,特别是你要用作不同的用途的时候。

    一个重要的影响就是会导致下面的List元素获取出现越界的情况。

    三、List元素的获取

    List元素的获取只有一种方式,无论是一维List还是二维List,都是用${变量名[index]},就是用$的变量,在变量名后面加上方括号,里面是序号。

    1、一维List的例子。

    运行:

    2、二维List的例子。

    运行结果:

    如果log后面只写${f[1]},那么得到的结果如图:

  • 相关阅读:
    Angular Universal 学习笔记
    SAP Spartacus 如何获得当前渲染页面的 CMS 元数据
    Angular 服务器端渲染的学习笔记(二)
    Angular 服务器端渲染的学习笔记(一)
    第三方外部 Saas提供商如何跟使用 SAP 系统的客户进行对接接口集成
    如何从 SAP Spartacus Product Detail 页面,找到其 Angular 实现 Component 的位置
    具备自动刷新功能的 SAP ABAP ALV 报表
    C++学习目录
    c--条件编译
    c--文件读写--二进制
  • 原文地址:https://www.cnblogs.com/yigui/p/9188332.html
Copyright © 2011-2022 走看看