Robot Framework无法识别自定义库的类(类名和文件名相同)

时间:2019-05-08 13:06:43

标签: python robotframework

基本问题是,尽管库文件名和类名相同(与Robot Framework手册建议相同),但是Library PywinautoLibrary导入找不到类关键字。 Library PywinautoLibrary.PywinautoLibrary确实可以工作。

我知道Robot Framework Python文件不能同时具有类和静态功能,因此没有静态功能。

我已使用此setup.py制作了自定义的 pip 可安装轮文件:

setup(
    name='robotframework-pywinautolibrary',
    description='Robot Framework wrapper for pywinauto',
    version='1.0',
    classifiers=['Programming Language :: Python :: >=3.6'],
    package_dir={'' : 'src'},
    packages=['PywinautoLibrary'],
    include_package_data=True,
    install_requires=['pywinauto>=0.6.6'],
    author='****',
    author_email='****',
)

唯一的其他Python软件包文件为空__init__.py 然后我的PywinautoLibrary.py像这样开始:

#LIBRARY DEFINITIONS-----------------------------------------------------------
DEFAULT_TIMEOUT = 15
DEFAULT_INTERVAL = 0.5

#Kwargs definitions
TIMEOUT = 'timeout'
RETRY_INTERVAL = 'retry_interval'
UNIQUE_ID = 'unique_id'
INIT_TEXT = 'init_text'
WINDOW_GETTER = 'window_getter'
WINDOW_KWARGS = 'window_kwargs'
USER_TIMEOUT = 'user_timeout'
COMPARE_FUNCTION = 'compare_func'

#Props definitions
FONTS_KEY = 'fonts'
RECTANGE_KEY = 'rectangle'
CLIENT_RECTS_KEY = 'client_rects'


#-----------------------------------------------------------------------------


class PywinautoLibrary:

def __init__(self):
   ...

Python安装目录如下:

(python32_env) PS C:\python32_env\lib\site-packages\PywinautoLibrary>    


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         8.5.2019     10.36                __pycache__
-a----         8.5.2019     10.36          23088 PywinautoLibrary.py
-a----         8.5.2019     10.36              0 __init__.py

我想念一些简单的东西吗?

1 个答案:

答案 0 :(得分:2)

对于Library PywinautoLibrary,您说要导入PywinautoLibrary,但由于__init__.py为空,因此对要从该文件中使用的类一言不发。导入Library PywinautoLibrary.PywinautoLibrary就是从该库中导入PywinautoLibrary类,这就是它起作用的原因。

因此__init__.py必须至少包含以下内容:

from PywinautoLibrary.PywinautoLibrary import PywinautoLibrary

它从PywinautoLibrary模块导入PywinautoLibrary类,并且可见关键字。