配置文本识别设置

相关项: 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 引擎类型

选择以下文本识别机制之一:

  • Abbyy OCR (默认选项)
  • Tesseract OCR 引擎
  • Google 云 OCR 引擎
  • Baidu 云 OCR 引擎

注释: 仅在 UFT One 15.0.1 版或更高版本中支持云 OCR 引擎。

配置与云 OCR 服务的连接

UFT One 15.0.1 及更高版本上受支持

使用云 OCR 引擎需要在相关供应商处设置一个帐户,并获取用于连接到云服务的访问令牌或密钥。

  • 输入您的访问令牌或密钥
  • 如果您的 Internet 连接需要代理服务器,请指定代理服务器地址和身份验证详细信息。
  • 按“测试连接”以测试连接详细信息,并确保 UFT One 可以连接到云 OCR 服务。
文本识别模式

(仅限 Abbyy 和 Tesseract OCR 引擎)

  • 单文本块模式: 专注于区域并将其视为单个文本块。该选项对尝试捕获小对象上的文本或小文本区域中的文本尤其有用。如果对象文本的字体、大小、颜色和背景都一致,请选择该选项。

  • 多文本块模式: 指示 OCR 机制处理对象中背景字体和字体大小不同的每个文本区域。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 可以在使用文本识别之前标识图像元素。

返回页首

检查文本识别设置

  1. 创建或打开测试或组件。
  2. 执行以下任一操作:

    • 插入文本检查点或输出值步骤 (仅限测试和脚本化组件)

    • 插入使用以下某种测试对象方法的步骤:

      • 测试对象.GetVisibleText

      • 测试对象.GetTextLocation

      • 测试对象.GetText (针对终端仿真器对象)

    • 插入使用以下某种保留的对象方法的步骤 (仅限测试和脚本化组件) :

      • TextUtil.GetText

      • TextUtil.GetTextLocation

  3. 返回页首

根据需要调整设置

  • 如果捕获的文本并非预期文本,则分析问题,并调整“文本识别”选项以微调 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

返回页首

另请参见: