从机器人框架调用python函数

时间:2017-10-24 08:15:41

标签: python robotframework selenium2library

我试图弄清楚我做错了什么, 我想获得特定python函数的结果。

这是我的Resources.robot文件:

*** Settings ***
Library                           resources_func.py

*** Keywords ***
Test Time
    ${time_delta}=                get time period        ${Time}
  • $ {时间}已定义,但与我的问题无关

这是我的python脚本:

import re
from dateutil.parser import parse

class TimeTests(object):
    def get_time_period(timestamp):
        timestamps = re.findall(r'[0-9][0-9]:[0-9][0-9]', timestamp)
        a = parse(timestamp[0])
        b = parse(timestamp[1])
        res = (b - a)
        res = res.seconds / 60
        return res

这是我得到的错误:

No keyword with name 'get time period' found.

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

对于将来的其他人,请查看有关创建用户库的RF文档 http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#id216

  

导入库时使用的测试库的名称是   与实现它的模块或类的名称相同。对于   例如,如果你有一个Python模块MyLibrary(即文件   MyLibrary.py),它将创建一个名为MyLibrary的库。   类似地,Java类YourLibrary,当它不在任何包中时,   创建一个具有该名称的库。

     

Python类总是在模块中。如果是一个类的名称   实现库与模块名称Robot相同   Framework允许在导入库时删除类名。   例如,MyLib.py文件中的MyLib类可以用作库   只是名字MyLib。这也适用于子模块,以便if,for   例如,parent.MyLib模块具有类MyLib,使用just导入它   parent.MyLib有效。如果模块名称和类名不同,   必须使用模块和类名来使用库,   例如mymodule.MyLibrary或parent.submodule.MyLib。