配置文本识别设置
相关项: GUI 测试和组件
先决条件
在应用程序中,显示要捕获的文本。
分析文本的特征
确定是否可以使用文本 (或类似于文本) 属性而不是文本识别机制捕获文本。
运行使用 OCR 的步骤会比运行使用基于属性的对象识别的步骤花费更长的时间。
确定要使用的 OCR 引擎
您可能需要对应用程序进行试验,以找出哪种 OCR 设置可获得最佳效果。确定了哪种 OCR 引擎最适合您的测试后,建议您始终使用该引擎。对不同的运行使用不同的引擎可能会产生不同的结果。
注释: 仅在 UFT One 15.0.1 版或更高版本中支持云 OCR 引擎。
当选择 OCR 引擎时,请考虑以下事项:
考虑事项 | Google 和 Baidu (云) | Abbyy 和 Tesseract (非云) |
---|---|---|
精度 |
选择证明最能准确体现您的应用程序的 OCR 引擎。 云供应商提供不同的客户计划,从而提供各种级别的精度。 |
|
可用性 |
需要云 OCR 帐户和可用的 Internet 连接 |
不需要帐户或 Internet 连接 |
语言支持 |
Google 云 OCR 自动检测语言并支持混合语言文本。您不必指定期望在应用程序中使用的语言。另请参阅已知问题 - 多语言应用程序。 与 Abbyy 相比,Baidu OCR 支持的语言较少,但在象形语言 (例如中文、日语或朝鲜语) 中提供了较高的准确性和较好的识别能力。 在“文本识别”窗格中检查 Baidu 和 Abbyy 的可用语言列表。Baidu 分别支持各种语言或包含中文和英语的文本。另请参阅已知问题 - 多语言应用程序。 |
Abbyy OCR 支持许多语言,可以将其配置为支持多种语言,并且可以识别混合语言文本。 使用 Tesseract OCR 引擎时,一次只能使用一个语言包。有关语言中语言包的更多详细信息,请参阅以下内容。 |
性能 |
受 Internet 连接质量 (而不是计算机配置) 的影响。 受云平台计划的影响。 |
需要强大的处理器。在较旧的计算机上,可能需要很长时间才能为复杂图像或多语言文本提供结果。 Tesseract OCR 引擎比 Abbyy OCR 引擎慢。如果您的测试大量使用了文本识别步骤 (例如 GetVisibleText),请注意运行这些测试所需的总时间将增加。 |
设置适当的选项
在“选项”对话框的“文本识别”窗格 (“工具”>“选项”>“GUI 测试”选项卡 >“文本识别”节点) 中,设置以下选项:
OCR 引擎类型 |
选择以下文本识别机制之一:
注释: 仅在 UFT One 15.0.1 版或更高版本中支持云 OCR 引擎。 |
配置与云 OCR 服务的连接 |
在 UFT One 15.0.1 及更高版本上受支持 使用云 OCR 引擎需要在相关供应商处设置一个帐户,并获取用于连接到云服务的访问令牌或密钥。
|
文本识别模式 |
(仅限 Abbyy 和 Tesseract OCR 引擎)
|
语言 |
可用语言和支持的语言 (仅限 Abbyy OCR 引擎) 从可用语言列表中,选择文本识别支持的语言。 UFT One 15.0 或更早版本: 您可以选择多种非象形语言,也可以选择一种象形语言,例如中文、日语或朝鲜语。 UFT One 15.0.1 或更高版本: 您可以选择要支持的多种语言。 |
语言类型 (仅限 Baidu OCR 引擎) 从语言列表中,选择一种语言以支持文本识别,或者选择“中文与英语”。 |
|
当前语言包 (仅限 Tesseract OCR 引擎) 用于文本识别的当前语言包。使用 Tesseract 引擎时,一次只能使用一个语言包。 您可以从 Tesseract OCR 引擎下载站点下载其他语言包: https://sourceforge.net/projects/tesseract-ocr-alt/files/?source=navbar。下载后,将语言包中的文件添加到“<UFT One 安装文件夹>/dat/tessdata”文件夹。 |
|
文本识别的符号 | (仅限 Tesseract OCR 引擎) 输入希望 UFT One 识别的字符列表。当 UFT One 运行测试时,它将仅对指定的字符执行文本识别,所有其他字符均被忽略。 |
快速模式 |
(仅限 Tesseract OCR 引擎) 选择是否希望 UFT One 以更高的文本识别精度或更好的测试运行性能来执行。清除“快速模式”复选框以更高的精度运行。 |
使用文件中的配置 |
(仅限 Tesseract OCR 引擎) 指示 UFT One 从外部创建的文件加载文本识别配置。 有关创建文件的详细信息,请参阅 http://www.sk-spell.sk.cx/tesseract-ocr-parameters-in-302-version。 |
在使用文本识别之前预处理图像 | 指示 UFT One 在执行文本识别之前处理背景图像。这使 UFT One 可以在使用文本识别之前标识图像元素。 |
检查文本识别设置
- 创建或打开测试或组件。
-
执行以下任一操作:
-
插入文本检查点或输出值步骤 (仅限测试和脚本化组件)
-
插入使用以下某种测试对象方法的步骤:
-
测试对象.GetVisibleText
-
测试对象.GetTextLocation
-
测试对象.GetText (针对终端仿真器对象)
-
-
插入使用以下某种保留的对象方法的步骤 (仅限测试和脚本化组件) :
-
TextUtil.GetText
-
TextUtil.GetTextLocation
-
-
根据需要调整设置
- 如果捕获的文本并非预期文本,则分析问题,并调整“文本识别”选项以微调 UFT One 捕获文本的方式。
-
UFT One15.0.2 及更高版本: 如果插入的 GetVisibleText 步骤无法正确捕获框架中包含的文本,请尝试在与 OCR 相关的步骤之前添加
setting("ABBYYOCRTextInFrame") = True
,并在这些步骤之后添加setting("ABBYYOCRTextInFrame") = False
:示例:
setting("ABBYYOCRTextInFrame") = True print Window("WinBurger").Dialog("WinBurger Order-Entry").WinButton("Add").GetVisibleText() setting("ABBYYOCRTextInFrame") = False
另请参见: