通过 OCR 单击
使用 OCR 功能部件,根据输入的文本来单击用户界面控件。
命令可用性: 本地 IBM RPA SaaS 和 IBM RPA
Description
使用 OCR 功能部件,根据输入的文本来单击用户界面控件。 在 Windows 上,控件是允许用户与应用程序进行交互的元素。 控件可以是按钮、数据输入字段、菜单和各种其他元素。
您可以使用此命令来利用脚本的表面自动化功能。 有关更多信息,请参阅 用于表面自动化的操作。
脚本语法
IBM RPA 的专有脚本语言具有类似于其他编程语言的语法。 该脚本语法在脚本文件中定义命令的语法。 您可以在 IBM RPA Studio的 脚本 方式下使用此语法。
ocrClick [--handleError(Boolean)] [--safesearch(Boolean)] --ocrprovider(Nullable<OpticalCharacterRecognitionProvider>) [--googlevisionclientsecret(String)] --comparison(OcrStringComparison) --fuzzyalgorithm(Nullable<FuzzyStringComparisonAlgorithms>) --tolerance(Nullable<FuzzyStringComparisonTolerance>) --manualTolerance(Numeric) --segmentation(StringSegmentation) --text(String) [--occurrencetype(FindOccurrenceTypes)] --occurrence(Numeric) [--doubleclick(Boolean)] [--clickonposition(Boolean)] [--corner(Nullable<ControlCorner>)] --position(Point) --language(String) [--region(Rectangle)] [--invertcolors(Boolean)] [--forcerefresh(Boolean)] --selector(ControlSelectors) --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)] (Boolean)=success (Image)=image (String)=text (Rectangle)=bounds
输入参数
下表显示了此命令中提供的输入参数的列表。 在表中,您可以看到在 IBM RPA Studio的脚本方式及其 Designer 方式等效标签中工作时的参数名称。
| 设计器方式标签 | 脚本方式名称 | 必需的 | 接受的变量类型 | Description |
|---|---|---|---|---|
| 处理错误 | handleError |
Optional |
Boolean |
启用后,除了在 IBM RPA Studio 控制台中返回的错误信息外,如果在该运行期间发生错误,那么将允许脚本不停止。 否则,会在发生错误时停止运行。 |
| 选择器类型 | selector |
Required |
ControlSelectors |
用于标识用户界面控件的选择器类型。 请参阅 selector 参数选项。您可以使用 IBM RPA Studio的记录器来映射控件并获取此参数所需的信息。 |
| 标识 | id |
Only whenSelector is Id, IdAndName |
Text |
UI 控件的标识。 |
| 安全搜索 | safesearch |
Optional |
Boolean |
启用后,将允许聚焦该窗口,并使用超高图像分辨率进行比较。 |
| OCR 提供程序 | ocrprovider |
Required |
OpticalCharacterRecognitionProvider |
用于字符识别的 OCR 服务提供程序。 请参阅 ocrprovider 参数选项 |
| XPath | xpath |
Required when the Selector type parameter is XPath |
Text |
包含所需控件的 XPath 表达式。 |
| API 参数 | googlevisionclientsecret |
Optional |
Text |
这是包含 API 参数的 JSON 文件的绝对路径。 请参阅 Google Cloud Vision™ |
| 比较 | comparison |
Required |
OcrStringComparison |
应该在所需区域的文本与从指定的界面控件获取的文本之间使用的比较方式。 请参阅 comparison 参数选项 |
| 模糊算法 | fuzzyalgorithm |
Only whenComparison is ApproximatelyEquals |
FuzzyStringComparisonAlgorithms |
用作比较基础的模糊算法的类型。 请参阅 fuzzyalgorithm 参数选项 |
| 容差 | tolerance |
Only whenComparison is ApproximatelyEquals |
FuzzyStringComparisonTolerance |
为与指定的模糊算法进行比较而寻求的区域文本的相似度。 请参阅 Tolerance 参数选项 |
| 容差值 | manualTolerance |
Only whenTolerance is Manual |
Number |
定义要作为所选模糊算法的容差应用的最小百分比(从 0 到 100)。 |
| 分段 | segmentation |
Required |
StringSegmentation |
要搜索的文本类型。 -短语; -单词 |
| 文本 | text |
Required |
Text |
用户界面控件的内部文本。 |
| 出现项类型 | occurrencetype |
Optional |
FindOccurrenceTypes |
用于查找文本的出现类型: 请参阅 ocurrencetype 参数选项 |
| 索引 | occurrence |
Only whenOcurrence Type is N |
Number |
用于查找文本的所报告出现的索引。 |
| 双击 | doubleclick |
Optional |
Boolean |
启用后,将双击为 OCR 单击指定的区域。 |
| 单击位置 | clickonposition |
Optional |
Boolean |
启用后,将允许在屏幕的特定角执行 OCR 单击。 |
| 角 | corner |
Optional |
ControlCorner |
对将在屏幕的哪个角执行 OCR 单击进行定界。 请参阅 corner 参数选项 |
| X 偏移量(已废弃) | deltax |
Optional |
Number |
水平偏移量(以像素为单位)。 此参数已废弃,请改用“区域”参数。 |
| Y 偏移量(已废弃) | deltay |
Optional |
Number |
垂直偏移量(以像素为单位)。 此参数已废弃,请改用“区域”参数。 |
| 位置 | position |
Only whenClick on Position is True |
Point |
要在一个角上执行单击的坐标(以像素为单位)。 指定的坐标可以根据要执行脚本的机器的屏幕分辨率而更改。 |
| 语言 | language |
Required |
Text, Culture |
应该检索的文本的语言。 用户可以使用 OCR 提供程序支持的有效文化代码来覆盖缺省受支持语言。 有关受支持的语言,请参阅 受支持的语言。 |
| 区域 | 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 |
它与控件实例匹配。 |
| 类型和索引 | typeandindex |
它与控件类型及其在同等类型控件中的位置索引相匹配。 |
| 类型和名称 | typeandname |
它与控件类型和名称匹配。 |
ocrprovider 参数选项
下表显示了可用于 ocrprovider 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。
| 设计器方式标签 | 脚本方式名称 | Description |
|---|---|---|
Google |
Google Tesseract™ | |
| Google Cloud Vision | GoogleVision |
Google Cloud Vision™ |
| Abbyy | Abbyy |
Abbyy™ |
corner 参数选项
下表显示了可用于 corner 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。
| 设计器方式标签 | 脚本方式名称 | Description |
|---|---|---|
| 左下方 | BottomLeft |
它与相对于屏幕位置的左下角匹配。 |
| 右下方 | Bottomright |
它与相对于屏幕位置的右下角匹配。 |
| 左上方 | TopLeft |
它与相对于屏幕位置的左上角匹配。 |
| 右上方 | TopRight |
它与相对于屏幕位置的右上角匹配。 |
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 |
它与应用程序中的“窗口”控件匹配。 |
fuzzyalgorithm 参数选项
下表显示了可用于 fuzzyalgorithm 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。 模糊算法是字符串比较算法
模糊算法是字符串比较算法。
| 设计器方式标签 | 脚本方式名称 |
|---|---|
| Dice 系数 | DiceCoefficient |
| Hamming 距离 | HammingDistance |
| Jacard 距离 | JaccardDistance |
| Jaro 距离 | JaroDistance |
| Jaro Winkler 距离 | JaroWinklerDistance |
| Levenshtein 距离 | LevenshteinDistance |
| 最长公共子序列 | LongestCommonSubsequence |
| 最长公共子字符串 | LongestCommonSubstring |
| 重叠系数 | OverlapCoefficient |
| Ratcliff obershelp 相似度 | RatcliffObershelpSimilarity |
| Sorensen Dice 距离 | SorensenDiceDistance |
| Tanimoto 系数 | TanimotoCoefficient |
occurrencetype 参数选项
下表显示了可用于 occurrencetype 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。
| 设计器方式标签 | 脚本方式名称 | Description |
|---|---|---|
| 第一次出现 | First |
首次出现查找文本。 |
| 最后出现 | Last |
最后一次出现查找文本。 |
| 第 n 次出现 | N |
第 N 次出现查找文本。 |
comparison 参数选项
下表显示了可用于 comparison 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。
| 设计器方式标签 | 脚本方式名称 |
|---|---|
| 近似等于 | ApproximatelyEquals |
| 开头为 | Begins_With |
| 结尾为 | Ends_With |
| 等于 | Equal_To |
| 匹配项 | Matches |
“近似等于”选项使用一定程度的容差作为与模糊算法进行比较的方法。
tolerance 参数选项
下表显示了可用于 tolerance 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。
| 设计器方式标签 | 脚本方式名称 | Description |
|---|---|---|
| 手动 | Manual |
要求进行比较的区域文本的手动相似度。 |
| 普通用户 | Normal |
要求进行比较的区域文本的正常相似度。 |
| 有效 | Strong |
要求进行比较的区域文本的强相似度。 |
| 弱 | Weak |
要求进行比较的区域文本的弱相似度。 |
输出参数
| 设计器方式标签 | 脚本方式名称 | 接受的变量类型 | Description |
|---|---|---|---|
| 成功 | success |
Boolean |
如果已成功获取文本,那么返回 true,否则返回 false。 |
| Image | image |
Image |
已处理的图像。 |
| 文本 | text |
Text |
返回已识别的文本。 |
| 区域 | bounds |
Rectangle |
返回在图像中找到文本的区域。 |
示例
使用 "单击 OCR" 命令打开 "油柒" 可执行文件,通过 "Google Cloud Vision" 识别 "区域" 参数指示的文本,以便搜索并单击先前在 IBM RPA Studio的记录器中映射的特定字段。
defVar --name paintWindow --type Window
defVar --name paintImage --type Image
defVar --name clickedText --type String
defVar --name success --type Boolean
defVar --name clickRegion --type Rectangle
// Opens the Paint executable.
launchWindow --executablepath "C:\\Windows\\System32\\mspaint.exe" paintWindow=value
// Extracts the text contained in the informed control, using the Google Cloud Vision OCR provider.
ocrClick --ocrprovider "GoogleVision" --comparison "Contains" --segmentation "Word" --text View --occurrencetype "First" --language "eng" --region "5,3,42,20" --selector "Name" --name View success=success paintImage=image clickedText=text clickRegion=bounds
logMessage --message "Success: ${success}\r\nClicked Text: ${clickedText}\r\nClick Region: ${clickRegion}" --type "Info"
closeWindow --window ${paintWindow}
// The return varies according to the current execution context. In the case of this example:
// Success: True
// Clicked Text: View
// Click Region: 8,5,20,9