麻烦 运行 python 文件作为 Robot Framework 中的关键字
Trouble running python file as a keyword in Robot Framework
我正在尝试 运行 一个 python 文件作为机器人框架中的关键字。但是,当我 运行 它时,它说找不到关键字。我尝试了以下代码的多种变体,但没有成功。机器人框架和 python 文件都在同一个目录中。我的目标是确定特定字符串是否在 .csv 文件中
机器人框架文件:
*** Settings ***
Library CheckDataInCSV
*** Test Cases ***
${encryption_in_csv}= CheckDataInCSV.IsDataInCsv | readings.csv | C:\Users\me\Downloads
log | ${encryption_in_csv}
Python 文件 CheckDataInCSV.py:
from robot.api.deco import keyword
@keyword("IsDataInCsv")
def IsDataInCsv(text, downloads_path):
f = open(downloads_path+'readings.csv', 'r')
file_contents = f.readlines()
f.close()
for item in file_contents:
if text in item:
return True
else:
pass
return False
我也尝试过不使用 @keyword
header 以及仅在没有库的情况下调用关键字:IsDataInCsv
而不是 CheckDataInCSV.IsDataInCsv
以及使用@关键字和函数名称的不同名称。
首先,请确保您的 .robot
文件语法正确。您在代码示例中丢失了 Test Case name
。
*** Settings ***
Library CheckDataInCSV
*** Test Cases ***
Test Name What You Want
${encryption_in_csv}= CheckDataInCSV.IsDataInCsv | readings.csv | C:\Users\me\Downloads
log | ${encryption_in_csv}
回到你的问题。根据您的代码,只需将 CheckDataInCSV.py
所在的目录路径添加到您的 PYTHONPATH
即可。然后就可以了。
Linux 命令
export PYTHONPATH=$PYTHONPATH:/YOUR_PY_FILE_PATH
关于 *** Setting ***
中的关键字 Library
。有两种导入自定义库的方法。
第一种方式就像你的代码。它将在您的 PYTHONPATH
.
中搜索您的 python 文件
*** Settings ***
Library CheckDataInCSV
另一种方法是像下面的库名称 .py
。它将搜索与 .robot
文件的相对位置。你也可以使用绝对位置。
*** Settings ***
Library CheckDataInCSV.py
我正在尝试 运行 一个 python 文件作为机器人框架中的关键字。但是,当我 运行 它时,它说找不到关键字。我尝试了以下代码的多种变体,但没有成功。机器人框架和 python 文件都在同一个目录中。我的目标是确定特定字符串是否在 .csv 文件中
机器人框架文件:
*** Settings ***
Library CheckDataInCSV
*** Test Cases ***
${encryption_in_csv}= CheckDataInCSV.IsDataInCsv | readings.csv | C:\Users\me\Downloads
log | ${encryption_in_csv}
Python 文件 CheckDataInCSV.py:
from robot.api.deco import keyword
@keyword("IsDataInCsv")
def IsDataInCsv(text, downloads_path):
f = open(downloads_path+'readings.csv', 'r')
file_contents = f.readlines()
f.close()
for item in file_contents:
if text in item:
return True
else:
pass
return False
我也尝试过不使用 @keyword
header 以及仅在没有库的情况下调用关键字:IsDataInCsv
而不是 CheckDataInCSV.IsDataInCsv
以及使用@关键字和函数名称的不同名称。
首先,请确保您的 .robot
文件语法正确。您在代码示例中丢失了 Test Case name
。
*** Settings ***
Library CheckDataInCSV
*** Test Cases ***
Test Name What You Want
${encryption_in_csv}= CheckDataInCSV.IsDataInCsv | readings.csv | C:\Users\me\Downloads
log | ${encryption_in_csv}
回到你的问题。根据您的代码,只需将 CheckDataInCSV.py
所在的目录路径添加到您的 PYTHONPATH
即可。然后就可以了。
Linux 命令
export PYTHONPATH=$PYTHONPATH:/YOUR_PY_FILE_PATH
关于 *** Setting ***
中的关键字 Library
。有两种导入自定义库的方法。
第一种方式就像你的代码。它将在您的 PYTHONPATH
.
*** Settings ***
Library CheckDataInCSV
另一种方法是像下面的库名称 .py
。它将搜索与 .robot
文件的相对位置。你也可以使用绝对位置。
*** Settings ***
Library CheckDataInCSV.py