引言:什么是RFS——RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面。

( @齐涛-道长 新浪微博)

这一讲我们重点来介绍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]},那么得到的结果如图:

总之,就是用方括号来表明你需要的元素,如果是多维List,要想清楚你到底要哪层的,不要写少了或者写多了。

转载于:https://www.cnblogs.com/zhuifengji/p/4602578.html

RFS的web自动化验收测试——第12讲 List Variables-List变量及其用法相关推荐

  1. RFS的web自动化验收测试——第17讲 RFS+AutoItLibrary测试web上传下载

    引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...

  2. RFS的web自动化验收测试——第5讲 工作区Run

    引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 这一讲主要说一下工作区的Run页面,这里可 ...

  3. RFS的web自动化验收测试——第8讲 继续未完的数据分离

    引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...

  4. RFS的web自动化验收测试——第16讲 RFS+AutoItLibrary测试web对话框

    引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...

  5. RFS的web自动化验收测试——更新篇(安装指南)——首次使用RF请先读我

    引言:什么是RFS--RobotFramework+selenium2library,本系列主要介绍web自动化验收测试方面. (PS:标题太长了,以后都短一些)(@齐涛-道长 新浪微博) 我搞了个R ...

  6. RFS的web自动化验收测试——Selenium2Library升级指南(补充一个问题)

    引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...

  7. WEB自动化-(RFS)RobotFramework+Selenium框架介绍测试流程详解

    各个驱动下载地址: http://www.seleniumhq.org/download/ 一.RFS介绍 1.概念 RFS框架:RobotFramework+Selenium框架 2.特点 2.1通 ...

  8. Robot Framework:Web自动化之-元素处理

    Robot Framework:Web自动化之-元素处理 普通元素 1 文本输入框 1.1 输入文本 Wait Until Element Is Visible xpath=//*[@id=" ...

  9. Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)

    Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...

最新文章

  1. android仿qq聊天项目点评,android 实现qq聊天对话界面效果
  2. CentOS系统快捷方式设置
  3. 关于完全卸载office 相关版本的彻底方法
  4. Unity 2018.3.1 SyncVar没有同步服务器变量
  5. IHostingEnvironment VS IHostEnvironment - .NET Core 3.0中的废弃类型
  6. 电子商务应用课程知识整理 第四章-搜索引擎
  7. centos关于”running yum-complete-transaction first...
  8. php ldap 模块,不重新编译为PHP增加LDAP模块的支持
  9. 华为 P30系列最高补贴1200元!华为开启以旧换新服务了
  10. eureka server启动后端口变为8080问题解决
  11. git学习 远程仓库02
  12. Linux 考试题(带答案)
  13. 车标识别 深度学习车标识别 神经网络车标识别 cnn车标识别 目标检测 yolo识别
  14. 免拆破解电信机顶盒TY1208-Z,绝对成功
  15. 2018c语言二级选择题题库,计算机二级office题库选择题及答案
  16. java查找pdf关键字_Java定位PDF中关键字的坐标
  17. 苏云技术导航网站源码 附后台
  18. caffe 6中优化方法并附带 对应的solver。prototxt代码
  19. 巧用二重积分的积分中值定理
  20. 【轻松上手postman】入门篇:如果根据接口文档写postman接口用例

热门文章

  1. Linux 磁盘管理命令
  2. 日常生活小技巧 -- vim 中 ctags 的安装和使用
  3. 电路基础知识 -- 三态
  4. 【问链-链改进行时】 第二课 链改的技术架构选择
  5. python堆堆乐教程_python堆排序,详细过程图和讲解,这样做小白都会
  6. qt之键盘的设计及QlineEdit内容读取
  7. 华为手机没有耳塞插口_鸿蒙OS 2.0手机版开启公测!名单中只有华为手机没有荣耀...
  8. distance在函数 int_TensorFlow函数:tf.losses.cosine_distance
  9. pythonpackage详解_Python详解之包管理:__init__.py
  10. 算法的威力:法国人用台式机打破由超级计算机创造的圆周率运算世界记录