无法使用已使用Python编写的Robot Framework自定义库

无法使用已使用Python编写的Robot Framework自定义库,python,pycharm,robotframework,Python,Pycharm,Robotframework,使用如下函数创建了一个示例Python脚本(Elements.py): from robot.api.deco import keyword @keyword("join two strings") def join_two_strings(arg1, arg2): return arg1 + " " + arg2 然后,我将以下内容作为库导入Robot Framework脚本(.Robot文件): *** Settings *** Library Ap

使用如下函数创建了一个示例Python脚本(Elements.py):

from robot.api.deco import keyword

@keyword("join two strings")
def join_two_strings(arg1, arg2):
   return arg1 + " " + arg2
然后,我将以下内容作为库导入Robot Framework脚本(.Robot文件):

*** Settings ***
Library                 AppiumLibrary
Library                 Selenium2Library
Library                 BuiltIn
#Here is the import of Custom Lib
Library                 Elements.py 

*** Variable ***

*** Test Cases ***
Example that calls a Python keyword
   ${result}=   join two strings   hello world
   Should be equal     ${result}    hello world
在脚本上方运行后,出现类似“找不到名为“join two strings”的关键字”的错误。即使我已将自定义库导入其中

错误消息:

[ ERROR ] Error in file C:\Users\ramana.gouda\PycharmProjects\SafeMobile\Test_Suite\TestCase_346.robot: Test library 'Elements.py' does not exist.

TestCase 346 :: Creating internal cases using device                          

Example that calls a Python keyword                                   | FAIL |
No keyword with name 'join two strings' found.

我总是必须使用相对路径,除非该文件与我的测试用例位于同一目录中,并且基于错误,您的文件看起来不是

因此,在您的情况下,它看起来类似于以下内容(不完全是这样,因为我不知道Elements.py位于何处):


希望这有帮助

如果您不想在所有robot文件中包含相对路径,另一个选项是在启动测试时使用
--pythonpath

-P、 --蟒蛇

要添加到模块搜索路径的其他位置

这样您就可以:

Library    Elements.py
在您的代码中,您必须像这样启动它:

robot  --pythonpath C:/Users/ramana.gouda/PycharmProjects/SafeMobile/ Test_Suite/TestCase_346.robot
从SafeMobile文件夹


您可以更进一步,创建一个可以收集所有路径设置的。例如
custom_libraries.txt

--pythonpath C:/Users/ramana.gouda/PycharmProjects/SafeMobile/
--pythonpath C:/Users/ramana.gouda/PycharmProjects/SafeMobile/libs/
您可以在启动测试时使用它:

robot --argumentfile custom_libraries.txt Test_Suite/TestCase_346.robot

这样,当您或其他人导入新库时,就不需要更改测试的启动方式。您只需确保将新库的路径添加到参数文件中。

尝试过,但这是一个棘手的问题。我已经用同样的方法做了3-4个小时,它没有工作,现在工作:)谢谢你的时间!有没有办法将自定义库永久添加到pythonpath?就像我们添加其他外部库一样。@Sameem外部库安装在
Python\Python37\site packages
文件夹下。如果在这里包含库源代码,那么python应该像其他代码一样找到它。另一种方法是用库的路径更新PYTHONPATH env变量,Linux上也应该有同样的答案。就我个人而言,我更喜欢这里的命令行参数,因为它是可移植的,并且对于多个开发人员来说,没有必要在每台机器上设置PYTHONPATH。明白了。谢谢
robot --argumentfile custom_libraries.txt Test_Suite/TestCase_346.robot