运行时中的文本识别

相关项: GUI 测试和组件

UFT One 使用 OCR (光学字符识别) 机制来标识应用程序中的文本。

UFT One 何时使用 OCR

在以下情况下可以使用 UFT One 的 OCR 功能: 

  • 使用测试和脚本化组件时,可以使用文本和文本区域检查点或输出值命令在对象中验证或检索文本。
  • 另外,处理测试、关键字或脚本化组件和函数库时,可以插入步骤,以使用 .GetVisibleText.GetTextLocation 测试对象方法、TextUtil.GetTextTextUtil.GetTextLocation 保留的对象方法或 .GetText (针对终端仿真器对象) 从应用程序中的对象捕获文本。
  • 文本测试对象 (代表应用程序中的特定文本) 也使用 OCR 进行标识。

注释: 交互屏幕中的对象不支持文本识别。

文本测试对象

UFT One 15.0.1 或更高版本 (15.0.1 中的技术预览) 中受支持

创建文本测试对象以表示应用程序中的特定文本,而与开发应用程序所使用的技术无关。然后,您可以对这些测试对象执行操作,例如单击、拖动、放置和悬停

UFT One 15.0.2 和更高版本中,可以在对象存储库编辑器中以及在录制会话期间添加文本测试对象。有关详细信息,请参阅使用图像识别或文本测试对象录制文本对象步骤

对于 TextObjects 上支持的操作和属性,请参阅《UFT One Object Model Reference for GUI Testing》中的图像识别和文本 > TextObject 对象主题。

OCR 机制和设置

UFT One 使用 OCR 机制时,有许多因素可能会影响其检索的文本。可以根据要检索的文本的特征来调整多个 OCR 配置选项,以优化捕获文本的方式。使用文本识别窗格 (选项对话框 > GUI 测试选项卡) 指定首选的文本识别机制和特定于 OCR 的设置。

可以使用以下文本识别引擎之一:

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

注释:  

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

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

  • 如果 UFT One 无法使用已配置的详细信息连接到云 OCR 服务,它会改用 Abbyy。

优化文本识别

OCR 的准确性取决于字体以及图像的质量和均匀性。

为了执行更有效的文本识别,您还应注意以下事项:

文本中的字体

(仅适用于 Abbyy 和 Tesseract OCR 引擎)

  • 单个文本块模式和多个文本块模式有时会生成不同的捕获文本。如果您不确定要使用哪个文本块模式,可以使用默认的多个文本块模式。如果结果并非如预期所示,则尝试使用单个文本块模式。

    如果要对包含不同字体和背景的较大区域使用文本识别机制,则建议创建多个步骤来捕获每个文本块的文本,而不是创建一个步骤来捕获多个文本块。

  • 如果使用多个文本块模式时,文本识别机制检索到不必要的文本信息 (如作为同一字符串的多个副本出现的隐藏文本和阴影文本) ,则使用单个文本块模式选项。要执行此操作,请在“选项”对话框的文本识别窗格 (工具 > 选项 > GUI 测试选项卡 > 文本识别节点) 中,选择单个文本块模式。有关详细信息,请参阅文本识别窗格 (选项对话框 > GUI 测试选项卡)
  • 如果您的应用程序使用小字体 (小于 10 磅),则应在选择了“在使用文本识别之前预处理图像”选项的情况下使用 Tesseract OCR 引擎。
颜色和颜色对比度
  • 背景的配色方案应为永久的且无渐变。
  • 背景和文本之间的高对比度最适合文本识别 (例如,白色背景上的黑色文本)。
图像中的文本
  • 如果在图像中找到了您的文本,建议您使用“选项”对话框的“文本识别”窗格中的“在使用文本识别之前预处理图像”选项 (“工具”>“选项”>GUI 测试”选项卡 >“文本识别”模式)。
文本识别的尺寸
  • 尝试使所选文本区域的尺寸尽量小,以防止在识别的文本中出现其他不需要的字符。

    同时,如果您使用的是云供应商,请避免使用很小的窗口或元素,并且不要为识别失败的文本区域检查点指定如此小的区域:

    使用 Baidu 时: 确保矩形的长度和宽度不小于 15 像素且不大于 4096 像素。

    使用 Google 时: 确保矩形的长度和宽度不大于 20 兆像素。推荐尺寸: 1024 x 768。

  • 请考虑窗口中对象的可能移动 (坐标的变更)。例如,不同计算机上的屏幕分辨率通常不同,而这会影响应用程序中对象的坐标。而且,在应用程序的设计和开发阶段中,为了美观,可能会移动某个对象以便为其他对象腾出空间。

  • 注意,操作系统、安装的服务包、安装的工具包等均可能影响应用程序中对象的大小和位置。请确保所选文本区域的大小足够用于不同系统配置。

  • 应用程序窗口的尺寸也会影响文本识别。试用应用程序窗口尺寸以获得最佳识别。然后,请确保以该尺寸录制和运行您的测试。

在 UFT 15.0 或更低版本中创建的测试

UFT One 15.0.1 中,Abbyy OCR 引擎已升级到较新的版本。结果是,您可能会看到在早期版本的 UFT One 中创建的测试的文本识别发生了变化。

OCR 引擎一致性 确定了哪种 OCR 引擎最适合您的测试后,建议您始终使用该引擎。对不同的运行使用不同的引擎可能会产生不同的结果。

另请参见: