首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机器人框架-导入外部python库不起作用

机器人框架-导入外部python库不起作用
EN

Stack Overflow用户
提问于 2020-11-27 10:37:40
回答 1查看 1.4K关注 0票数 0

我有一个机器人框架项目,下面的文件夹和文件结构。

logger.py文件如下所示。

代码语言:javascript
复制
def log_into_console():
    print("log_into_console() method executed")

message_printer.py文件如下所示。

代码语言:javascript
复制
# This line cause the problem. it says "ModuleNotFoundError: No module named 'Lib.Common'"
from Lib.Common.logger import log_into_console

def print_message():
    print("print_message() method executed")
    log_into_console()

我想在我的机器人测试用例中调用上面的print_message()函数,如下所示。

代码语言:javascript
复制
*** Settings ***
Library    SeleniumLibrary
Library    ../Lib/Util/message_printer.py

*** Test Cases ***
My Test Robot Test Case
    print message

我的问题是当我执行测试时,它会抱怨它找不到Lib.Common模块。当我执行测试时,我会出错。

代码语言:javascript
复制
D:\WorkSpace\POC\Robot\ExternalLibTest\RobotFiles>robot Test.robot
[ ERROR ] Error in file 'D:\WorkSpace\POC\Robot\ExternalLibTest\RobotFiles\Test.robot' on line 3: Importing test library 'D:\WorkSpace\POC\Robot\ExternalLibTest\Lib\Util\message_printer.p
y' failed: ModuleNotFoundError: No module named 'Lib.Common'
Traceback (most recent call last):
  File "D:\WorkSpace\POC\Robot\ExternalLibTest\Lib\Util\message_printer.py", line 3, in <module>
    import Lib.Common.logger
PYTHONPATH:
  C:\Users\XXX\AppData\Local\Programs\Python\Python37\Scripts\robot.exe
  c:\users\XXX\appdata\local\programs\python\python37\python37.zip
  c:\users\XXX\appdata\local\programs\python\python37\DLLs
  c:\users\XXX\appdata\local\programs\python\python37\lib
  c:\users\XXX\appdata\local\programs\python\python37
  c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages
==============================================================================
Test
==============================================================================
My Test Robot Test Case                                               | FAIL |
No keyword with name 'print message' found.
------------------------------------------------------------------------------
Test                                                                  | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================
Output:  D:\WorkSpace\POC\Robot\ExternalLibTest\RobotFiles\output.xml
Log:     D:\WorkSpace\POC\Robot\ExternalLibTest\RobotFiles\log.html
Report:  D:\WorkSpace\POC\Robot\ExternalLibTest\RobotFiles\report.html

有人能帮我解决这个问题吗。

EN

回答 1

Stack Overflow用户

发布于 2020-11-30 08:36:04

#1:要解决"ModuleNotFoundError: No模块名为‘Lib.Common’“的错误,请尝试以下一个

代码语言:javascript
复制
from logger import log_into_console

def print_message():
    print("print_message() method executed")
    log_into_console()

由于函数log_into_console位于同一个目录中,所以可以直接使用记录器而不是要获得更多详细信息,请参阅下面的链接https://intellipaat.com/community/9924/call-a-function-from-another-file-in-python#:~:text=If%20you%20want%20to%20call,b)

#2:您可以在机器人文件中进行以下更改,以解决名称为“打印消息”的No关键字找到的错误

代码语言:javascript
复制
*** Settings ***
Library    SeleniumLibrary
Library    Lib

*** Test Cases ***
My Test Robot Test Case
    Lib.message_printer

当你尝试这个时,如果你面临任何错误,请告诉我!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65035890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档