自定义python库的好处:
robot framework填表式,将python的灵活性弄没了,但是不要担心,RF早就想到了解决办法,就是扩充自己的库.
1.在python应用程序包目录下创建一个新包:D:\Python27\Lib\site-packages\NewLibrary
这里注意文件夹NewLibrary就是你包的名称,这里顺便说一下包的概念,python区分包和普通文件夹就在于文件夹里是否有一个__init__.py的文件
回到正题
NewLibrary这个包就是之后RF Library要导入的名称
2.创建一个类文件,用来存储你自定义函数的,这里写了个myclass.py的文件(这个名子可以自定义)
3.分别编辑myclass.py与__init__.py的内容
__init__.py内容:
from myclass import MyClass #从myclass.py导入类名为MyClass的类 class NewLibrary(MyClass): #从MyClass断承 ROBOT_LIBRARY_SCOPE = 'GLOBAL' #设置RF选项
myclass.py内容:
class MyClass(object): def __init__(self): pass def printMsg(self,msg): print "hello "+msg
以上写完,打开RF
看一下关键字里,是不是已经有了我们定义的类文件中的函数
在RF中调用我们自定义的函数
另外:输入部分函数名如:print按ctrl+alt+space(空格键),会调出提示
原文 https://www.cnblogs.com/yhleng/p/8857059.html
问题总结 以下自己遇到的一些问题的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。