RF(自定义关键字)

1、在 D:work_softwarepythonLibsite-packages 文件夹下, 新建 python package 包 ,例如我的是 TestLibrary

  • 建好后的完整路径:D:work_softwarepythonLibsite-packagesTestLibrary
  • Tips:我的 python 是安装在 D 盘,在创建时,要根据自己的安装路径选择)

2、在 D:work_softwarepythonLibsite-packagesTestLibrary 文件夹下查看是否有 __init__.py 文件,若没有新建 __init__.py (空内容文件)。

  • 建好后的完整路径:D:work_softwarepythonLibsite-packagesTestLibrary\__init__.py

3、在 D:work_softwarepythonLibsite-packagesTestLibrary 文件夹下,新建自己的关键字文件,例如我的是 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_softwarepythonLibsite-packagesTestLibrary __init__.py 修改该文件内容为

  • 特别注意:在 __init__.py 文件中,创建 class 时,类名必须和自己的库文件夹名称相同。
  • 例如我的类名称是 TestLibrary,而创建的库名也是 TestLibrary → D:work_softwarepythonLibsite-packagesTestLibrary
#__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。
原文地址:https://www.cnblogs.com/ZhengYing0813/p/11697331.html