通过 OCR 获取控件文本
使用 OCR 功能部件从 UI 控件中获取文本。
命令可用性: 本地 IBM RPA SaaS 和 IBM RPA
Description
使用 OCR 功能部件从 UI 控件中获取文本。
在 Windows 上下文中,控件是允许用户与应用程序进行交互的元素。 控件可以是按钮、数据输入字段、菜单和各种其他元素。
您可以使用此命令来利用脚本的表面自动化功能。 有关更多信息,请参阅 用于表面自动化的操作。
脚本语法
IBM RPA 的专有脚本语言具有类似于其他编程语言的语法。 该脚本语法在脚本文件中定义命令的语法。 您可以在 IBM RPA Studio的 脚本 方式下使用此语法。
ocr --selector(ControlSelectors) [--searchOnScreen(Boolean)] [--safesearch(Boolean)] --ocrprovider(Nullable<OpticalCharacterRecognitionProvider>) [--googlevisionclientsecret(String)] [--image(Image)] --similarity(Numeric) --language(String) [--region(Rectangle)] [--invertcolors(Boolean)] [--forcerefresh(Boolean)] --id(String) --name(String) --innertext(String) --tagname(String) --xpath(String) --classname(String) --elementvalue(String) --controltype(Nullable<ControlTypes>) --index(Numeric) --control(Control) [--usetable(Boolean)] [--searchbycolumn(Boolean)] --searchcolumn(String) --searchvalue(String) --returncolumn(String) --row(Numeric) [--timeout(TimeSpan)] (Image)=image (String)=value (String)=error (Numeric)=confidence (Boolean)=success
输入参数
下表显示了此命令中提供的输入参数的列表。 在表中,您可以看到在 IBM RPA Studio的脚本方式及其 Designer 方式等效标签中工作时的参数名称。
| 设计器方式标签 | 脚本方式名称 | 必需的 | 接受的变量类型 | Description |
|---|---|---|---|---|
| 在屏幕上搜索 | SearchOnScreen |
Optional |
Boolean |
启用后,将允许在整个屏幕上搜索图像。 |
| 选择器类型 | selector |
Required |
ControlSelectors |
用于标识用户界面控件的选择器类型。 请参阅 selector 参数选项。可以使用 IBM RPA Studio的记录器来映射控件并获取 "选择器" 参数的必要信息,此外还可以在脚本中插入命令并自动填充这些参数。 该记录器在平台上的上方工具栏中可用。 |
| 标识 | id |
Only whenSelector is Id, IdAndName |
Text |
UI 控件的标识。 |
| 安全搜索 | safesearch |
Optional |
Boolean |
启用后,将允许聚焦该窗口,并使用超高图像分辨率进行比较。 |
| OCR 提供程序 | ocrprovider |
Required |
OpticalCharacterRecognitionProvider |
用于字符识别的 OCR 服务提供程序。 请参阅 ocrprovider 参数选项 |
| 清除尾部换行符 | sanitize |
Optional when the method parameter is Abbyy |
Boolean |
修剪结果文本,并移除尾部 Unicode 换行符。 |
| XPath | xpath |
Required when the Selector type parameter is XPath |
Text |
UI 控件的 XPath 行距。 |
| API 参数 | googlevisionclientsecret |
Optional |
Text |
这是包含 API 参数的 JSON 文件的绝对路径。 请参阅 Google Cloud Vision™ |
| Image | image |
Optional |
image |
用作查找文本基础的图像。 |
| 相似度 | similarity |
Required |
Number |
相对于在图像参数中定义的图像要达到的相似度(百分比)。 |
| 语言 | language |
Required |
Text, Culture |
应该检索的文本的语言。 有关受支持的语言,请参阅 受支持的语言。 |
| 区域 | region |
Optional |
Rectangle |
用于获取文本的区域。 |
| 反转颜色 | invertcolors |
Optional |
Boolean |
启用后,允许反转控件颜色。 |
| 更新屏幕高速缓存 | forcerefresh |
Optional |
Boolean |
启用后,将在运行命令以识别新元素并更新屏幕高速缓存之前再次读取屏幕。 如果屏幕频繁更改,那么需要执行此操作。 |
| 名称 | name |
Only whenSelector is Name, NameAndValue, IdAndName, TypeAndName |
Text |
UI 控件的名称。 |
| 文本 | innertext |
Only whenSelector is InnerTextAndTag |
Text |
UI 控件的内部文本。 |
| 元素类型 | tagname |
Only whenSelector is InnerTextAndTag |
Text |
元素或标记的类型。 |
| 名称 | classname |
Only whenSelector is ClassAndValue, ClassName |
Text |
UI 控件的类。 |
| 元素值 | elementvalue |
Only whenSelector is ClassAndValue, NameAndValue |
Text |
UI 控件的当前值。 |
| 类型 | controltype |
Only whenSelector is TypeAndIndex, TypeAndName |
ControlTypes |
UI 控件类型。 请参阅 controltype 参数选项 |
| 索引 | index |
Only whenSelector is TypeAndIndex |
Number |
UI 控件的索引。 |
| 控件 | control |
Only whenSelector is Instance |
Control |
控件实例。 使用搜索控件命令可获取此变量。 |
| 表中的元素 | usetable |
Optional |
Boolean |
启用后,将允许访存表内的元素。 |
| 按列搜索 | searchbycolumn |
Optional |
Boolean |
启用后,将按列而不是按行来访存元素。 |
| 列 | searchcolumn |
Only whenElement in Table is True |
Text |
从中获取元素的列的名称或编号。 |
| 值 | searchvalue |
Only whenSearch by Column is True |
Text |
用于在表中查找元素的值。 |
| 返回列 | returncolumn |
Only whenSearch by Column is True |
Text |
包含控件的列。 |
| 行 | row |
Only whenSearch by Column is False |
Number |
从中获取元素的表行。 |
| 超时 | timeout |
Optional |
Time Span, Number, Text |
运行命令时的最长等待时间。 如果为空白,那么缺省超时为 5 秒。 |
selector 参数选项
下表显示了可用于 selector 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。
| 设计器方式标签 | 脚本方式名称 | Description |
|---|---|---|
| 标识 | Id |
它与控件的唯一标识匹配。 |
| 名称 | Name |
它与控件名称匹配。 |
| 名称和值 | NameAndValue |
它与控件名称和值匹配。 |
| XPath | XPath |
它与通过控件树到目标控件的路径匹配。 |
| 标识和名称 | IdAndName |
它与唯一标识和控件名称匹配。 |
| 类和值 | ClassandValue它与控件类名和值匹配。 |
|
| 类名 | ClassName |
它与用于实例化控件的类名匹配。 |
| 内部文本和控件类型 | InnerTextAndTag |
它与控件内部文本及其类型属性匹配。 |
| 实例 | instance |
它与控件实例匹配。 |
| 视觉 | vision |
它与标识控件的映射图像匹配。 |
| 类型和索引 | typeandindex |
它与控件类型及其在同等类型控件中的位置索引相匹配。 |
| 类型和名称 | typeandname |
它与控件类型和名称匹配。 |
ocrprovider 参数选项
下表显示了可用于 ocrprovider 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。
| 设计器方式标签 | 脚本方式名称 | Description |
|---|---|---|
| Abbyy | Abbyy |
Abbyy OCR 提供程序。 |
Google |
Google Tesseract OCR 提供程序。 | |
| Google Cloud Vision | GoogleVision |
Google Cloud Vision API。 |
Controltype 参数选项
下表显示了可用于 Controltype 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。
| 设计器方式标签 | 脚本方式名称 | Description |
|---|---|---|
| 按钮 | Button |
它与应用程序中的“按钮”控件匹配。 |
| 复选框 | CheckBox |
它与应用程序中的“复选框”控件匹配。 |
| 子窗口 | ChildWindow |
它与应用程序中的“子窗口”控件匹配。 |
| 组合框 | ComboBox |
它与应用程序中的“组合框”控件匹配。 |
| 常规 | Generic |
它与应用程序中的“常规”控件匹配。 |
| Image | Image |
它与应用程序中的“图像”控件匹配。 |
| 标签 | Label |
它与应用程序中的“标签”控件匹配。 |
| 列表框 | ListBox |
它与应用程序中的“列表框”控件匹配。 |
| 菜单栏 | MenuBar |
它与应用程序中的“菜单栏”控件匹配。 |
| 菜单项 | MenuItem |
它与应用程序中的“菜单项”控件匹配。 |
| 进度条 | ProgressBar |
它与应用程序中的“进度条”控件匹配。 |
| 单选按钮 | RadioButton |
它与应用程序中的“单选按钮”控件匹配。 |
| 滚动条 | ScrollBar |
它与应用程序中的“滚动条”控件匹配。 |
| 滑块 | Slider |
它与应用程序中的“滑块”控件匹配。 |
| 微调器 | Spinner |
它与应用程序中的“微调器”控件匹配。 |
| 状态栏 | StatusBar |
它与应用程序中的“状态栏”控件匹配。 |
| 选项卡页面 | TabPage |
它与应用程序中的“选项卡页面”控件匹配。 |
| 选项卡面板 | TabPanel |
它与应用程序中的“选项卡面板”控件匹配。 |
| 表 | Table |
它与应用程序中的“表”控件匹配。 |
| 文本框 | TextBox |
它与应用程序中的“文本框”控件匹配。 |
| 切换按钮 | ToggleButton |
它与应用程序中的“切换按钮”控件匹配。 |
| 树形视图 | TreeView |
它与应用程序中的“树形视图”控件匹配。 |
| TreeTable | TreeTable |
它与应用程序中的“树表”控件匹配。 |
| 窗口 | Window |
它与应用程序中的“窗口”控件匹配。 |
输出参数
| 设计器方式标签 | 脚本方式名称 | 接受的变量类型 | Description |
|---|---|---|---|
| 成功 | success |
Boolean |
如果已成功获取文本,那么返回 true,否则返回 false。 |
| Image | image |
Image |
已处理的图像。 |
| 值 | text |
Text |
已获取的文本。 |
| 错误 | error |
Text |
错误的百分比。 |
| 置信度 | confidence |
Number |
0 与 1 之间的可靠性级别,其中 1 是表示所返回文本正确的最大置信度。 |
示例
将打开 "油柒" 可执行文件以从 UI 控件获取文本,该控件先前是在 IBM RPA Studio的记录器工具的帮助下映射的。
defVar --name paintWindow --type Window
defVar --name paintImage --type Image
defVar --name obtainedText --type String
defVar --name confidence --type Numeric
defVar --name success --type Boolean
// Open the Paint executable.
launchWindow --executablepath "C:\\Windows\\System32\\mspaint.exe" paintWindow=value
// Extracts the text contained in the entered control using Google's OCR provider.
ocr --selector "Name" --ocrprovider "GoogleVision" --similarity 100 --language "eng" --name "Edit colors" paintImage=image obtainedText=value confidence=confidence success=success
logMessage --message "Confidence: ${confidence}\r\nSuccess: ${success}\r\nText: ${obtainedText}" --type "Info"
closeWindow --window ${paintWindow}
// The return varies according to the current execution context, in the case of this example:
// Confidence: 0.990000009536743
// Success: True
// Text: Edit
限制
与 Google Cloud Vision™ 和 Google Tesseract™ 相比,ABBYY ® 的工作方式有所不同。它以不同的方式划分文本组件,并以不同的顺序获取组件。