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\ 文件夹下,新建自己的关键字文件,例如我的是keyword_openfile.py

代码如下:

# -- coding: utf-8 --

class Readfile():

    def __init__(self):

        pass

    def readfile(self,file_path):

  '''

   读取文件内容

 '''

        with open(file_path,'r') as file1:

            file2 = file1.read().split('\n')

            return file2 

4:D:\work_software\python\Lib\site-packages\TestLibrary\ __init__.py 修改该文件内容为

#-*-coding:utf-8-*-

from keyword_openfile import Readfile

class TestLibrary(Readfile):

    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

# 特别注意:

在__init__.py文件中,创建class 时,类名必须和自己的库文件夹名称相同。

例如我的类名称是TestLibrary,而创建的库文件夹名也是TestLibrary→D:\work_software\python\Lib\site-packages\TestLibrary

在robotframework 中,点击Library 导入自定义库

导入自定义库文件TestLibrary,正确时为灰色字体(导入库文件,就不需要说明了)

完整的文件结构应该是这样:

TestLibrary

——- __init__.py

——- keyword_openfile.py

以下自己遇到的一些问题的debug

1:尽量在文件的开头加上:# -- coding: utf-8 --,因为python默认编码是ascii,所以如果代码中有(),或中文等等符号,会报错,提示编码不正确

2:如果写的代码里边有中文,尽量在文件开头加上以下3行代码

import sys

reload(sys)

sys.setdefaultencoding("utf-8")

3:如果在初始化函数中,定义了形参。则必须在导入库的时候,也要提供对应的参数。

不然会提示少给了变量的报错。

def __init__(self,a,b):

    pass

4: 修改代码后,及时把对应的.pyc文件删除并且重启下robotframework 后,再导入。

5:如果还是有其他的报错,请点击Tools→View RIDE log ,查看并debug。

RF自定义库和关键字的更多相关文章

  1. 十二、RF自定义库(数据库)

    1.自定义第三方库 def DB_select_by_sql(self,db_name,sql): conn=pymysql.connect(db=db_name,user='root',passwo ...

  2. Python 学习笔记20 自定义robot Framework 关键字

    Robot Framework 自定义关键字 Robot framework 自定义了一些关键字我们可以把他们当作函数在设计测试用例的时候使用. 同时RF也提供了许多第三方的库,我们可以自己下载使用. ...

  3. Robot Framework 自定义库

    进入  python安装路径\Lib\site-packages 创建文件夹,库名 创建py文件,myclass.py 创建py文件,__init__.py 导入自定义库 遇到的问题: python版 ...

  4. Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库

    Note:这篇文章是基于Android Studio 3.01版本的,NDK是R16. step1:创建一个包含C++的项目 其他默认就可以了. C++ Standard 指定编译库的环境,其中Too ...

  5. Struts2加载自定义库注意事项

    新建Struts2项目,添加Struts2的jar包时,往往通过导入自定义库的方式,导入自定义库时,有个地方必须要设置,否则项目无法正常执行,如图所示: 必须要按照上述方式对自定义库进行加载!

  6. Simulink仿真入门到精通(十三) Simulink创建自定义库

    当用户自定义了一系列模块之后,可以自定义模块库将同类自定义模块显示到Simulink Browser中,作为库模块方便地拖曳到新建模型中. 建立这样的自定义库需要3个条件: 建立library的mdl ...

  7. RF自定义系统关键字

    如果您准备学习Python,船长在这里给大家推荐几个学习Python的好地方:   1.廖雪峰官网 http://www.liaoxuefeng.com/wiki/001374738125095c95 ...

  8. 【转】 robotframework(rf)中对时间操作的datetime库常用关键字

    转自http://blog.csdn.net/r455678/article/details/52993765 DateTime库是robotframework内置的库 1.对固定日期进行操作,增加或 ...

  9. Robot Framework:RF中对时间操作的datetime库常用关键字

    [转自:http://blog.csdn.net/r455678/article/details/52993765] 1.对固定日期进行操作,增加或减去单位时间或者时间段 2.对两个时间段进行操作 3 ...

随机推荐

  1. Redis缓存和数据库一致性问题

    工作中,经常会遇到缓存和数据库数据一致性问题.从理论上设置过期时间,是保证最终一致性的解决方案.这种方案下,我们可以对存入缓存的数据设置过期时间,所有的写操作以数据库为准,对缓存操作只是尽最大努力即可 ...

  2. Net基础篇_学习笔记_第十一天_面向对象(构造函数)

    VS封装字段快捷键: 提取方法 Ctrl+R,M         封装字段 Ctrl+R,E           提取接口 Ctrl+R,I. 构成函数: public Student() { Con ...

  3. java8中字符串常量以及GC相应处理机制

    目录 1,常量池 1.1, class文件常量池 1.2, 运行时常量池 1.3,字符串常量池 String.intern() -XX:StringTableSize 2,使用new关键字和使用字符串 ...

  4. MySQL 8.0主从(Master-Slave)配置

    版权声明:转载请注明出处,谢谢配合. https://blog.csdn.net/zyhlwzy/article/details/80569422 MySQL 主从复制的方式有多种,本文主要演示基于基 ...

  5. Day4 总结

  6. 重写一下ArrayList

    其实重写不难,下面是我重写时定义的一些接口. /** * 重写实现一个list * @author <u>zhoujx</u> * */ public interface My ...

  7. Spark学习之Scala的基础知识

    Scala的变量声明 在Scala创建变量的时候,必须使用val或者var val,变量值不可修改,一旦分配不能重新指向别的值 var,分配后,可重新指向类型相同的值 举例 val lines = s ...

  8. [Linux] linux下vim对于意外退出的文档的再次开启

    转载自博客:https://blog.csdn.net/ljp1919/article/details/48372615 1.对于同一个文件如果上次已经打开,而未关闭的情况下,又打开该文件进行编辑时, ...

  9. 10.Django基础八之cookie和session

    一 会话跟踪 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器 ...

  10. 对象实例Vue

    var vm = new Vue({ el:'#app', data:{}, //数据 methods:{}, //方法调用 filters:{}, //私有过滤器 directives:{}, // ...