RFS的web自动化验收测试——第12讲 List Variables-List变量及其用法
引言:什么是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变量及其用法相关推荐
- RFS的web自动化验收测试——第17讲 RFS+AutoItLibrary测试web上传下载
引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...
- RFS的web自动化验收测试——第5讲 工作区Run
引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 这一讲主要说一下工作区的Run页面,这里可 ...
- RFS的web自动化验收测试——第8讲 继续未完的数据分离
引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...
- RFS的web自动化验收测试——第16讲 RFS+AutoItLibrary测试web对话框
引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...
- RFS的web自动化验收测试——更新篇(安装指南)——首次使用RF请先读我
引言:什么是RFS--RobotFramework+selenium2library,本系列主要介绍web自动化验收测试方面. (PS:标题太长了,以后都短一些)(@齐涛-道长 新浪微博) 我搞了个R ...
- RFS的web自动化验收测试——Selenium2Library升级指南(补充一个问题)
引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...
- WEB自动化-(RFS)RobotFramework+Selenium框架介绍测试流程详解
各个驱动下载地址: http://www.seleniumhq.org/download/ 一.RFS介绍 1.概念 RFS框架:RobotFramework+Selenium框架 2.特点 2.1通 ...
- Robot Framework:Web自动化之-元素处理
Robot Framework:Web自动化之-元素处理 普通元素 1 文本输入框 1.1 输入文本 Wait Until Element Is Visible xpath=//*[@id=" ...
- Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)
Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...
最新文章
- android仿qq聊天项目点评,android 实现qq聊天对话界面效果
- CentOS系统快捷方式设置
- 关于完全卸载office 相关版本的彻底方法
- Unity 2018.3.1 SyncVar没有同步服务器变量
- IHostingEnvironment VS IHostEnvironment - .NET Core 3.0中的废弃类型
- 电子商务应用课程知识整理 第四章-搜索引擎
- centos关于”running yum-complete-transaction first...
- php ldap 模块,不重新编译为PHP增加LDAP模块的支持
- 华为 P30系列最高补贴1200元!华为开启以旧换新服务了
- eureka server启动后端口变为8080问题解决
- git学习 远程仓库02
- Linux 考试题(带答案)
- 车标识别 深度学习车标识别 神经网络车标识别 cnn车标识别 目标检测 yolo识别
- 免拆破解电信机顶盒TY1208-Z,绝对成功
- 2018c语言二级选择题题库,计算机二级office题库选择题及答案
- java查找pdf关键字_Java定位PDF中关键字的坐标
- 苏云技术导航网站源码 附后台
- caffe 6中优化方法并附带 对应的solver。prototxt代码
- 巧用二重积分的积分中值定理
- 【轻松上手postman】入门篇:如果根据接口文档写postman接口用例
热门文章
- Linux 磁盘管理命令
- 日常生活小技巧 -- vim 中 ctags 的安装和使用
- 电路基础知识 -- 三态
- 【问链-链改进行时】 第二课 链改的技术架构选择
- python堆堆乐教程_python堆排序,详细过程图和讲解,这样做小白都会
- qt之键盘的设计及QlineEdit内容读取
- 华为手机没有耳塞插口_鸿蒙OS 2.0手机版开启公测!名单中只有华为手机没有荣耀...
- distance在函数 int_TensorFlow函数:tf.losses.cosine_distance
- pythonpackage详解_Python详解之包管理:__init__.py
- 算法的威力:法国人用台式机打破由超级计算机创造的圆周率运算世界记录