Robotframework 如何在另一个用户定义关键字中引用robot framework用户定义关键字
我对Robotframework 如何在另一个用户定义关键字中引用robot framework用户定义关键字,robotframework,Robotframework,我对机器人框架非常陌生,才几天大。。。 我希望使用机器人框架自动化我们的一个web应用程序,我正在使用页面对象模型设置,其中 我在文件(Resources/fileKeywords.robot)中定义了关键字 我还在一个单独的文件夹(PageObjects/locators.py)中有一个location.py文件,其中包含web元素 测试用例在一个名为“TestCases”的单独文件夹中定义。 现在我的应用程序中出现了这样的情况。 我必须选择一个CSV文件在应用程序中上载。 为此,我必须单击一
机器人框架非常陌生
,才几天大。。。
我希望使用机器人框架
自动化我们的一个web应用程序,我正在使用页面对象模型设置,其中
(Resources/fileKeywords.robot)中定义了关键字
(PageObjects/locators.py)
中有一个location.py
文件,其中包含web元素“TestCases”的单独文件夹中定义。
CSV
文件在应用程序中上载。
为此,我必须单击一个浏览按钮,该按钮将打开windows文件打开对话框,并从该对话框中选择特定文件夹中的CSV
文件,然后在文件对话框中单击“打开”以完成文件选择。
选择文件后,会有一个按钮来“导入”所选文件。
之后,文件将显示在一个表中,我必须单击相应的上载文件以继续
为此,我定义了几个像这样的关键字
***关键词***
File name for Upload
${CSVfileName}= read_csv_file ${CsvFileFolder} #read_csv_file is a python class which returns csv
file. Let's say acb.csv
Click uploaded file
click element ${CSVfileName}
在Click upload file
中,我试图引用html
元素中的${CSVfileName}
标量变量来对上传的文件执行单击操作
(比如xpath://span[包含(text(),'abc.csv')
]
但我得到了一个错误,它说“变量定义未找到”
我可以将两者放在同一个关键字下,并从我的测试用例中调用该关键字。但是为了更清晰,我想将它们分开
我只想知道:
如何从另一个关键字部分中的关键字(在我的情况下为“上载文件名”)引用用户定义变量(在我的情况下为${CSVfileName}
)(在我的情况下为“单击上载文件”)
对不起,如果我有点困惑或如果它不属于正确的论坛。
感谢您的帮助。理解您的意思有点让人困惑。但我会尝试,如果因为我不理解某些内容而不正确,请在评论中这样说 我想你有两个关键词:
*** Keywords ***
File name for Upload
...
${CSVfileName}= ...
...
Click uploaded file
...
现在,如果我理解了,您可以在文件名中创建变量${CSVfileName}
,以便上传
,并且您希望在中使用变量,单击上传的文件
在这种情况下,您大约有两种选择:
1/您可以使用关键字设置全局变量
*** Keywords ***
File name for Upload
...
Set Global Variable ${CSVfileName} ...
...
Click uploaded file
...
${CSVfileName}= ...
...
缺点是您需要确保每次使用变量之前都会调用上载的文件名
。变量声明和赋值也隐藏在关键字中,这在我看来不太清楚
2/您从文件名返回以进行上载
并参数化单击上载的文件
:
*** Keywords ***
File name for Upload
...
${CSVfileName} ...
[Return] ${CSVfileName}
...
Click uploaded file
[Arguments] ${CSVfileName}
...
您很可能会在这样的测试中使用它:
*** Test Cases ***
Upload File Test
...
${CSVfileName}= File name for Upload
Click uploaded file ${CSVfileName}
...
另一种解决方案使它更灵活,也更清晰。您会立即看到,在实际调用关键字之前,您需要提供一些参数。可以按任何顺序调用关键字,这使它们更加独立。要了解您的意思有点混乱。但我会尝试,如果它不正确,因为我不理解它的含义有什么事,在评论里说吧
我想你有两个关键词:
*** Keywords ***
File name for Upload
...
${CSVfileName}= ...
...
Click uploaded file
...
现在,如果我理解了,您可以在文件名中创建变量${CSVfileName}
,以便上传
,并且您希望在中使用变量,单击上传的文件
在这种情况下,您大约有两种选择:
1/您可以使用关键字设置全局变量
*** Keywords ***
File name for Upload
...
Set Global Variable ${CSVfileName} ...
...
Click uploaded file
...
${CSVfileName}= ...
...
缺点是您需要确保每次使用变量之前都会调用上载的文件名
。变量声明和赋值也隐藏在关键字中,这在我看来不太清楚
2/您从文件名返回以进行上载
并参数化单击上载的文件
:
*** Keywords ***
File name for Upload
...
${CSVfileName} ...
[Return] ${CSVfileName}
...
Click uploaded file
[Arguments] ${CSVfileName}
...
您很可能会在这样的测试中使用它:
*** Test Cases ***
Upload File Test
...
${CSVfileName}= File name for Upload
Click uploaded file ${CSVfileName}
...
另一种解决方案使它更灵活,也更清晰。您会立即看到,在实际调用关键字之前,您需要提供一些参数。可以按任何顺序调用关键字,这使它们更加独立