RF学习总结
Robot Framework简介
RPA框架是机器人过程自动化(RPA)的开源库和工具的集合,它被设计为与Robot Framework和Python一起使用。目标是为软件机器人开发人员提供良好的文档和积极维护的核心库。相比较于纯python实现,它的使用逻辑清晰,使用方法简单,可扩展性高。但是在某些特殊场景,Robot Framework具有局限性,比如并发执行,直接接管浏览器而不需要重新打开。
以下Robot Framework简称RF。RF的应用分为两种,一个是为公司解放劳动力,自动化处理简单但又繁琐的操作。二是为个人使用,现电商抢购活动还有秒杀抢单我认为完全可以用RF实现的。
RF准备工作
环境
项目 | 版本 |
---|---|
python | 3.7.9 |
rpaframework | 22.2.3 |
robotframework | 5.0.1 |
selenium | 4.5.0 |
开发工具
RF实体是一个.robot文件,pycharm的插件有点问题,而且不能识别里面的Keyword。因此使用Vscode进行开发。
需要准备的插件如下所示
RF结构
RF分为四部分Settings, Variables, Test Cases, Keywords
*** Setting ***
- Documentation 用于机器人的描述和介绍,对执行并没有什么作用
- Library 用于导入各种库,每个库会有上百个Keyword
Library的官方文档(https://rpaframework.org/index.html)
*** Variable ***
用于程序初始化的变量
- @ 用作创建列表
- & 用作创建字典
- $ 用作创建字符串或数字
*** Test Cases ***
与Task作用一样,用于写总流程
***Keywords ***
由多个自定义的Keyword组成,表示执行的步骤。
定义的Keyword下行加[Arguments] ${} 可作为函数的参数。
|
|
Python扩展
导入库时使用的测试库的名称与实现它的模块或类的名称相同。
Library
from robot.api.deco import library
RF导入python的库就像直接实例化一个类,运行构造参数,如下图所示。
@library装饰器 配置实现为类的库的一种简单方法是使用robot.api.deco.library类装饰器。它允许配置库的作用域、版本、自定义参数转换器、文档格式和监听器,可选参数scope、version、converter、doc_format和监听器。当使用这些参数时,它们会自动设置匹配的ROBOT_LIBRARY_SCOPE、ROBOT_LIBRARY_VERSION、ROBOT_LIBRARY_CONVERTERS、ROBOT_LIBRARY_DOC_FORMAT和ROBOT_LIBRARY_LISTENER属性
Keyword
from robot.api.deco import keyword
默认情况下,一个python类或模块下的所有函数被认为是Keyword。如果在设置中使用下图设置,默认不配置为keyword。函数的前缀可以使用@keyword开启。
或者直接使用@not_keyword禁用RF。
@keyword(name=None,tag=(),type=())->Any
可以修改把参数放在name里面
常用的库
RPA.Browswer.Selenium
auto_close=${FALSE} //执行完不自动关闭
-
打开网站 Open Available Browser url
-
输入内容 Input Text locator text clear=True
-
下拉框选择 Select From List By Value locator values
-
单选按钮 Select Radio Button group_name value
-
点击元素 Click Element locator
-
id:example
-
name:example
-
xpath://div[@id=“example”]
-
css:div#example
-
-
直接提交页面的唯一表单 Submit Form
-
截图 Screenshot locator output
-
等待元素出现 Wait Until Page Contains Element locator timeout=None
RPA.Excel.Files
- 打开excel Open Workbook path
- 读取返回表格 Read Worksheet As Table name=None header=False start=None
- 创建excel Create Workbook path fmt=xlsx sheet_name=None
- 设置表格值 Set Cell Value row column value
- 获取表格值并返回 Get Cell Value row column name=active sheet
参考资料
- Robot Framework User Guide(http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html)
- RPA Documentation, Training Courses, Certificates | Robocorp(https://robocorp.com/docs)
- Keyword libraries(https://robocorp.com/docs/libraries)
- XPATH定位的用法(https://www.cnblogs.com/aiyiless/p/16111340.html)