本指南提供了如何在 Robot Framework 中使用 RPALite 的详细信息。RPALite 是一个开源的 RPA(机器人流程自动化)库,允许您通过 Robot Framework 自动化各种任务。
RPALite 目前支持以下平台:
RPALite 支持两种 OCR 引擎:
您可以在初始化 RPALite 时配置 OCR 引擎:
*** Settings ***
Library RPALite ocr_engine=easyocr # 使用EasyOCR(默认)
*** Settings ***
Library RPALite ocr_engine=paddleocr # 使用PaddleOCR
您还可以配置其他参数,如调试模式、语言和步骤暂停间隔:
*** Settings ***
Library RPALite debug_mode=${TRUE} languages=["zh", "en"] step_pause_interval=5
使用 pip 安装 RPALite:
pip install RPALite
以下是使用 Robot Framework 和 RPALite 的简单示例:
*** Settings ***
Library RPALite
*** Test Cases ***
测试记事本
Send Keys {VK_LWIN down}D{VK_LWIN up}
Run Command notepad.exe
${app} = Find Application .*记事本
Maximize Window ${app}
Input Text 这是一个使用RPALite的演示。
Close App ${app}
RPALite 提供了许多高级功能,包括:
如果遇到任何问题:
您可以使用以下代码启动应用程序:
Run Command notepad.exe
要等待应用程序完全启动后再继续:
Run Command notepad.exe noblock=${FALSE}
您可以使用以下代码查找应用程序:
${app} = Find Application .*记事本
Find Application
关键字支持通过以下参数查找应用程序:
title
:一个字符串,表示应用程序标题必须匹配的正则表达式class_name
:一个字符串,表示应用程序的类名。要查找应用程序的类名,您可以使用Accessibility Insights for Windows 工具。使用类名的示例:
${app} = Find Application title=${NONE} class_name=Notepad
您可以使用以下代码关闭应用程序:
${app} = Find Application .*记事本
Close App ${app}
您还可以强制关闭应用程序:
Close App ${app} force_quit=${TRUE}
要最大化程序,您首先需要定位程序,然后调用Maximize Window
方法:
${app} = Find Application .*记事本
Maximize Window ${app}
您还可以指定窗口标题模式:
Maximize Window ${app} window_title_pattern=文档 - 记事本
${position} = Get Cursor Position
Log 光标位置:${position}
Mouse Move 100 200 # 移动到绝对位置(x=100, y=200)
Move Mouse To The Middle Of Text 要移动到的文本
Click By Position 100 200 # 在位置(100, 200)处左键点击
您还可以指定按钮和双击参数:
# 右键点击
Click By Position 100 200 button=right
# 左键双击
Click By Position 100 200 double_click=${TRUE}
Click By Text 点击我 # 点击匹配"点击我"的文本
使用右键点击或双击:
# 右键点击文本
Click By Text 点击我 button=right
# 左键双击文本
Click By Text 点击我 double_click=${TRUE}
Click By Image path/to/image.png # 点击图像
自定义点击:
# 右键点击图像
Click By Image path/to/image.png button=right
# 左键双击图像
Click By Image path/to/image.png double_click=${TRUE}
用于拖放操作:
Mouse Press button=left
Mouse Move 300 400 # 按住按钮移动
Mouse Release button=left
# 向上滚动3次
Scroll 3
# 向下滚动2次
Scroll -2
# 滚动后自定义等待时间
Scroll 1 sleep=1
Input Text 你好世界 # 在当前光标位置键入"你好世界"
您还可以指定输入文本后等待多长时间:
Input Text 你好世界 seconds=5
Send Keys {ENTER} # 发送回车键
Send Keys ^c # 发送Ctrl+C
Send Keys %{F4} # 发送Alt+F4
Send Keys +(abc) # 发送Shift+ABC(大写)
Send Keys {VK_LWIN down}D{VK_LWIN up} # 显示桌面
Enter In Field 用户名 john.doe
Enter In Field 密码 secret123
${value} = Get Text Field Value 用户名
Log 用户名是:${value}
Validate Text Exists 欢迎使用RPALite
您可以禁用抛出异常:
${result} = Validate Text Exists 欢迎使用RPALite throw_exception_when_failed=${FALSE}
${positions} = Find Text Positions 要查找的文本
Log 文本位置:${positions}
Log 第一个匹配的文本位置:${positions}[0]
使用精确匹配:
${positions} = Find Text Positions 要查找的文本 exact_match=${TRUE}
${position} = Wait Until Text Shown 等待出现的文本 timeout=30
Wait Until Text Disappears 等待消失的文本 timeout=30
${text} = Get Clipboard Text
Log 剪贴板内容:${text}
Copy Text To Clipboard 这是一个测试
${location} = Find Image Location path/to/image.png
在另一个图像中搜索:
${location} = Find Image Location path/to/needle.png path/to/haystack.png
${locations} = Find All Image Locations path/to/image.png
FOR ${loc} IN @{locations}
Log 在以下位置找到图像:${loc}
END
注意:如果未找到匹配项,此函数将返回空列表,而不是 None。
${location} = Wait Until Image Shown path/to/image.png timeout=30
${control} = Find Control By Label 标签文本
Log 控件位置:${control}
${control} = Find Control Near Text 控件附近的文本
Log 控件位置:${control}
Click Control By Label 按钮标签
使用右键点击或双击:
Click Control By Label 按钮标签 button=right double_click=${TRUE}
对于 Windows 应用程序:
${app} = Find Application 记事本
${control} = Find Control ${app} class_name=Edit title=文本编辑器
点击控件的特定部分:
Click Control ${app} class_name=Edit click_position=center
点击位置选项包括’center’(中心)、’center-left’(中左)、’center-right’(中右)、’left’(左)和’right’(右)。
${windows} = Find Windows By Title 窗口标题
${video_path} = Start Screen Recording output.avi
不指定文件路径:
${video_path} = Start Screen Recording
Log 录制到:${video_path}
自定义帧率:
${video_path} = Start Screen Recording fps=30
${final_path} = Stop Screen Recording
Log 录制保存到:${final_path}
Sleep 5 # 休眠5秒
Show Desktop
${size} = Get Screen Size
Log 屏幕尺寸:${size}
${image} = Take Screenshot
使用文件保存和多显示器选项:
# 截屏并保存到文件
Take Screenshot filename=screenshot.png
# 捕获所有屏幕
${all_screens_image} = Take Screenshot all_screens=${TRUE}
RPALite 提供了一个通用的Locate
函数,可以以不同方式查找对象:
# 通过文本定位
${position} = Locate 确定按钮
# 通过图像路径定位
${position} = Locate image:path/to/image.png
# 通过自动化ID定位(仅限Windows)
${app} = Find Application 记事本
${position} = Locate automateId:EditControl app=${app}
您还可以使用通用的Click
函数,该函数适用于这些定位器:
# 点击文本
Click 确定按钮
# 点击图像
Click image:path/to/image.png
# 通过自动化ID点击
${app} = Find Application 记事本
Click automateId:EditControl app=${app}