RF(自定义关键字)
1、在 D:\work_software\python\Lib\site-packages 文件夹下, 新建 python package 包 ,例如我的是 TestLibrary
- 建好后的完整路径:D:\work_software\python\Lib\site-packages\TestLibrary
- (Tips:我的 python 是安装在 D 盘,在创建时,要根据自己的安装路径选择)
2、在 D:\work_software\python\Lib\site-packages\TestLibrary\ 文件夹下查看是否有 __init__.py 文件,若没有新建 __init__.py (空内容文件)。
- 建好后的完整路径:D:\work_software\python\Lib\site-packages\TestLibrary\__init__.py
3、在 D:\work_software\python\Lib\site-packages\TestLibrary\ 文件夹下,新建自己的关键字文件,例如我的是 keywords.py
- 输入自定义的关键字如下
import time
class ForTime():
def __init__(self):
pass
def format_time(self):
"""
返回格式化时间
"""
return time.strftime("%Y-%m-%d %H-%M-%S")
if __name__ == '__main__':
print(ForTime().format_time())
4、D:\work_software\python\Lib\site-packages\TestLibrary\ __init__.py 修改该文件内容为
- 特别注意:在 __init__.py 文件中,创建 class 时,类名必须和自己的库文件夹名称相同。
- 例如我的类名称是 TestLibrary,而创建的库名也是 TestLibrary → D:\work_software\python\Lib\site-packages\TestLibrary
#__author:Mr.ZHENG
#data:2020/3/12 from TestLibrary.keywords import ForTime #导入刚刚定义的类 class TestLibrary(ForTime): #新建类继承 keywords.py 文件中的类,且这里的类名需要与自定义的库名一致 ROBOT_LIBRARY_SCOPE = "GLOBAL" #将我们的库设置全局
5、在 robotframework 中,点击 Library 导入自定义库
- 导入自定义库文件 TestLibrary,正确时为灰色字体(导入库文件,就不需要说明了)
6、完整的文件结构应该是这样:
- TestLibrary
- ——- __init__.py
- ——- keyword_s.py
7、以下自己遇到的一些问题的debug
- 尽量在文件的开头加上:# -- coding: utf-8 --,因为 python 默认编码是 ascii,所以如果代码中有(),或中文等等符号,会报错,提示编码不正确
- 如果写的代码里边有中文,尽量在文件开头加上以下3行代码
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
- 如果在初始化函数中,定义了形参,则必须在导入库的时候,也要提供对应的参数,不然会提示少给了变量的报错。
def __init__(self,a,b):
pass
- 修改代码后,及时把对应的 .pyc 文件删除并且重启下 robotframework 后,再导入。
- 如果还是有其他的报错,请点击 Tools→View RIDE log ,查看并 debug。
RF(自定义关键字)的更多相关文章
- 多测师讲解自动化测试 _RF自定义关键字_高级讲师肖sir
RF自定义关键字 在rf中叫关键字 在python中就叫做函数 或实例方法 我们自己可以写自定义关键字 自己创建一个库===库里面去创建模块===模块里面创建类和实例方法==>rf导入和引用 库 ...
- RF自定义系统关键字
如果您准备学习Python,船长在这里给大家推荐几个学习Python的好地方: 1.廖雪峰官网 http://www.liaoxuefeng.com/wiki/001374738125095c95 ...
- robotframework实战三--自定义关键字
在rf的实战1中,我的登录获取验证码就使用了自定义关键字,具体怎么做的,如下 1.新建文件夹 新建一个文件夹,我的MyLibrary,并且存放在site-packages下 2.编写代码 在pytho ...
- c/c++ 标准库 set 自定义关键字类型与比较函数
标准库 set 自定义关键字类型与比较函数 问题:哪些类型可以作为标准库set的关键字类型呢??? 答案: 1,任意类型,但是需要额外提供能够比较这种类型的比较函数. 2,这种类型实现了 < 操 ...
- RF之关键字、变量、循环
关键字的使用: RF的能力是由关键字提供的,所以,我们必须对RF的常用关键字有个了解 . 最常用的关键字就在RF的关键字中.http://robotframework.org 其中Builtin是标准 ...
- RF自定义库和关键字
1:在D:\work_software\python\Lib\site-packages 文件夹下, 新建python package文件夹 ,例如我的是TestLibrary 建好后的完整路径:D: ...
- robot framework笔记(三):扩展SeleniumLibrary库 (自定义关键字)
(一)自定义和浏览器相关的关键字 以下代码GitHub 版本库地址: https://github.com/blairwind/blog_rf SeleniumLibrary的扩展文档中提供了3种增加 ...
- katalon系列十:Katalon Studio自定义关键字之拖拽
Katalon Studio自带关键字“Drag And Drop To Object”,可以在这个网站实践:http://jqueryui.com/droppable/#default 不过“Dra ...
- RF --系统关键字开发
需求: 接收一个目录路径,自动遍历目录下以及子目录下的所有批处理(.bat) 文件并执行. 首先在..\Python27\Lib\site-packages 目录下创建 CustomLibrary 目 ...
随机推荐
- 10.1 io流--ASCII码表
day2.8中提到 /* * +: * 做加法运算 * * 字符参与加法运算,其实是拿字符在计算机中存储的数据值来参与运算的 * 'A' 65(B 66...) * 'a' 97(b 98...) * ...
- Array(数组)对象-->slice() 方法
1.定义和用法 slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分. 语法: array.slice(start, end) 参数:start 开始元素的下标,截取内容包含该元素 ...
- rdd简单操作
1.原始数据 Key value Transformations(example: ((1, 2), (3, 4), (3, 6))) 2. flatMap测试示例 object FlatMapTr ...
- 【Java】【常用类】Object 基类 源码学习
源码总览: 有好些都是native本地方法,背后是C++写的 没有关于构造器的描述,默认编译器提供的无参构造 https://blog.csdn.net/dmw412724/article/detai ...
- Java读源码之CountDownLatch
前言 相信大家都挺熟悉 CountDownLatch 的,顾名思义就是一个栅栏,其主要作用是多线程环境下,让多个线程在栅栏门口等待,所有线程到齐后,栅栏打开程序继续执行. 案例 用一个最简单的案例引出 ...
- Java 基础讲解
Hello,老同学们,又见面啦,新同学们,你们好哦! 在看完本人的<数据结构与算法>专栏的博文的老同学,恭喜你们在学习本专栏时,你们将会发现好多知识点都讲解过,都易于理解,那么,没看过的同 ...
- Asp.Net Core 3.0 学习3、Web Api 文件上传 Ajax请求以及跨域问题
1.创建Api项目 我用的是VS2019 Core3.1 .打开Vs2019 创建Asp.Net Core Web应用程序命名CoreWebApi 创建选择API 在Controller文件夹下面添加 ...
- idea中哪些好用到飞起的插件,偷懒神器
idea中开发人员的偷懒神器-插件 本期推荐一些开发人员常用的一些idea插件.偷懒神器在此,不再秃头! 1. idea安装插件的方法. file->setting->plugins ...
- 高级数据结构---红黑树及其插入左旋右旋代码java实现
前面我们说到的二叉查找树,可以看到根结点是初始化之后就是固定了的,后续插入的数如果都比它大,或者都比它小,那么这个时候它就退化成了链表了,查询的时间复杂度就变成了O(n),而不是理想中O(logn), ...
- kubernetes删除pod,pod一直处于Terminating状态
删除pod,pod一直处于Terminating状态 [root@yxz-cluster01 deploy_yaml]# kubectl get pod -n yunanbao NAME READY ...