通过 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™外部链接 文档,以获取有关 JSON 格式的详细信息。
比较 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 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