You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Robot Framework无法识别Enum类模块的技术求助

Robot Framework Web自动化模块识别问题

项目结构

src/
├── Enum/
│   └── FakerMethod.py
├── PageObjectModel/
│   ├── PageObject/
│   │   └── ApplyLoan.py
│   ├── Resources/
│   │   ├── Common.robot
│   │   └── ApplyLoan.robot
│   └── TestCases/
│       └── symple_loans_quote_creation.robot
└── CustomLib/
    ├── CommonLib.py
    └── FakerLib.py

测试用例配置(symple_loans_quote_creation.robot)

*** Settings ***
Library         SeleniumLibrary
Library         ../../CustomLib/CommonLib.py
Library         ../../CustomLib/FakerLib.py
...

报错信息

Importing test library 'src/CustomLib/FakerLib.py' failed: ModuleNotFoundError: No module named 'FakerMethod'
Traceback (most recent call last):
File "src/CustomLib/FakerLib.py", line 3, in <module>
import FakerMethod

FakerLib.py导入语句

import logging
import faker
import FakerMethod     #Present inside src/Enum

FakerMethod.py内容

from enum import Enum

class FakerMethod(Enum):
    """
        This is an enum which should be used with ../CustomLib/FakerLib.py
    """
    ABA = 'aba'
    ADD_PROVIDER = 'add_provider'
    ...

已尝试但无效的方法

  • 使用相对导入:import ..Enum.FakerMethod
  • 使用相对导入:from ..Enum import FakerMethod
  • 将src/Enum添加到系统路径

解决方案

方法1:动态添加src路径到Python环境

修改FakerLib.py,通过代码获取src目录的绝对路径并加入sys.path,再使用绝对导入:

import logging
import faker
import sys
from pathlib import Path

# 从FakerLib.py所在位置向上两级找到src目录
src_dir = Path(__file__).resolve().parent.parent
sys.path.append(str(src_dir))

from Enum.FakerMethod import FakerMethod

方法2:通过环境变量指定PYTHONPATH

运行测试前,将src目录加入PYTHONPATH,确保Python能识别到Enum模块:

  • Windows系统:
set PYTHONPATH=你的项目路径\src
robot src/PageObjectModel/TestCases/symple_loans_quote_creation.robot
  • Linux/macOS系统:
export PYTHONPATH=/你的项目路径/src
robot src/PageObjectModel/TestCases/symple_loans_quote_creation.robot

之后修改FakerLib.py的导入语句为:

import logging
import faker
from Enum.FakerMethod import FakerMethod

方法3:将src转为Python包

在src、Enum、CustomLib三个目录下分别创建空的__init__.py文件,将整个src目录转为Python包,然后修改FakerLib.py的导入语句:

import logging
import faker
from src.Enum.FakerMethod import FakerMethod

运行测试时,确保工作目录处于src的上级目录,或者提前将src加入PYTHONPATH。


内容的提问来源于stack exchange,提问作者vivek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:42:19