Optical Character Recognition | TestComplete Documentation (2024)

This section describes TestComplete support for optical character recognition implemented with the Google Vision API. If no other means of accessing data in your tested application is available, you can use optical character recognition to get the text your tested application renders on screen, to verify that text, and to simulate user actions on the screen areas you recognize by their text contents.

About

Typically, TestComplete recognizes windows and controls by their properties (for example, by their class names, captions, IDs, and so on). However, there can be situations when TestComplete cannot access properties of a control or window in your tested application. This can happen, for example, if TestComplete does not support the control, or if the needed control is a graphical element rendered directly on the screen (for example, a bitmap or chart).

To test such windows and controls, you can command TestComplete to capture their text contents. To do this, TestComplete uses optical character recognition (OCR). It translates images of rendered text into computer-readable characters and works with the areas that contain the needed text. This helps you have more stable and flexible tests in comparison with tests that use coordinate-based mouse clicks.

Video Tutorial

Optical Character Recognition | TestComplete Documentation (1)

When to use optical character recognition

You can use the optical character recognition to:

  • Get the text contents of your tested application or a specific UI element to verify your tested application’s data or state.

  • Verify data displayed in a tabular form.
  • Find the needed UI element in your tested application by its text contents and simulate user actions on it.

Requirements

  • Your TestComplete version must be 12.60 or later.

  • You need an active license for the TestComplete Intelligent Quality add-on.

  • The Intelligent Quality add-on must be enabled in TestComplete.

    You can enable the add-on during TestComplete installation. If you did not enable the add-on during the installation, you can do this at any moment later via the File > Install Extensions dialog. To do that, select File > Install Extensions from the TestComplete main menu and enable the Intelligent Quality > Intelligent Quality Core plugin in the resulting dialog.

  • Optical Character Recognition support must be enabled in TestComplete.

    By default, it is enabled automatically if you enable the Intelligent Quality add-on during TestComplete installation. If you experience issues with optical character recognition in your tests, select File > Install Extensions from the TestComplete main menu and make sure the Optical Character Recognition plugin is enabled (you can find it in the Intelligent Quality group). If the plugin is disabled, enable it. In the confirmation message that TestComplete shows when you enable the plugin, click the link to read a third-party license agreement. If you agree to the license terms, click Enable OCR.

    In addition, make sure that you do not have the legacy OCR plugin installed and enabled. You can find the plugin in the Common group.

  • Your computer must have access to the ocr.api.dev.smartbear.com web service. If you have firewalls or proxies running in your network, they should allow your computer to access the web service.

  • Your firewall must allow traffic through port 443.

For detailed information on requirements that must be met and on how you can configure your test environment, see Optical Character Recognition - Requirements.

How it works

TestComplete can recognize the text of UI elements you select on screen as well as the text in images you capture from screen or load from files. TestComplete sends the data to be recognized to the ocr.api.dev.smartbear.com web service by SmartBear. This web service forwards incoming requests to Google Vision API and transfers the recognition results back to TestComplete.

In your tests, you can access the entire recognized text or individual text blocks or tabular data. If the recognized text belongs to a UI element, you can command TestComplete to locate that element on screen by its text and simulate various actions on it, for instance, clicks or touches. To learn how to do that, see below.

Security

To recognize text, TestComplete uses the ocr.api.dev.smartbear.com service, which, in its turn, uses Google Vision API. Data to recognize and recognition results are sent to the service via HTTPS, that is, the connection is secured and the data is encrypted. SmartBear neither stores, nor shares the sent data with any other third-parties.

For information on how Google Vision API handles data, please see cloud.google.com/vision/docs/data-usage.

Create OCR-based tests

Automatically

The easiest way to create a test is to record it:

Before you start recording

Select Tools > Options from the TestComplete main menu and enable the Engines > Recording > Record unsupported controls using OCR option. TestComplete will automatically identify unsupported controls by their text during recording and will record your actions on screen areas that contain this text.

If the option is off, TestComplete will record coordinate-based actions (if you have a non-instrumented Android application, it will record image-based actions).

Record

During recording, TestComplete automatically detects windows and controls with which you are interacting. If a window or control is supported by TestComplete, the latter records a test command that is specific to that window or control. If a window or control is not supported, TestComplete will record coordinate-based mouse actions and keyboard events for it. The OCR engine helps you record object-based commands for unsupported controls and make the recorded test more independent from screen coordinates, that is, more stable.

The following image shows an example of a recorded test that uses optical character recognition:

Optical Character Recognition | TestComplete Documentation (2)

Manually

  1. Prepare your application for testing. The way you do this depends on the application type. See Applications Testing.

  2. For mobile applications: connect TestComplete to your mobile device. To learn how to do that, see Preparing iOS Devices (Legacy) or Connecting TestComplete to Android Devices (Legacy) (depending on your device type). Open the Mobile Screen window.

  3. Launch your tested application.

  4. In your application, locate the areas where you will recognize text by using optical character recognition.

  5. In your test, add the commands that will recognize the text, verify it or use it to find the tested object on screen:

    In keyword test

    To recognize the text content of an onscreen object and check whether it is correct, use the OCR Checkpoint operation. To locate a control by its text content (or by surrounding text) and to simulate user actions on the control, use the OCR Action operation.

    The image below shows a sample keyword test that works with an application using OCR:

    Optical Character Recognition | TestComplete Documentation (3)

    Script

    Use the OCR.Recognize method in your script tests to recognize the text rendered on screen. The method will return an object that provides access to the area that contains the recognized text:

    • To get all the recognized text, use the OCR.Recognize.FullText property.

    • To access individual fragments (blocks) of the recognize text, use the OCR.Recognize.Block property or the OCR.Recognize.BlockByText method.

    • To access tabular data, use the OCR.Recognize.AsTable property or the OCR.Recognize.DetectTable property. Use the latter to get the tabular data if there are several tables within the same recognition area.

    • To verify that the tested application contains the specified text, use the OCR.Recognize.CheckText method.

    • To verify that a grid control in your tested application contains the specified text, use a table checkpoint.

    • To simulate user actions over an individual fragment (block) of the recognized text, use the methods that the OCR.Recognize.Block and OCR.RecoginzeBlockByText objects provide. For example, the Click or HoverMouse methods.

    • To simulate user actions over an area that is next to a fragment (block), use the ClickNextTo, TouchNextTo and SendKeys methods that the OCR.Recognize.Block and OCR.RecoginzeBlockByText objects provide.

    • To simulate user actions over a text block in a table cell, use the methods of the object that the Cell property returns.

    For example:

    Optical Character Recognition | TestComplete Documentation (4)

Addressing objects by their text content

In keyword tests, you use the OCR Action operation to find an area of a specified on-screen object containing the needed text and simulate user actions on it:

Optical Character Recognition | TestComplete Documentation (5)

In script tests, to access an object by its text, use the OCR.Recognize.Block or OCR.Recognize.BlockByText methods. The methods recognize the text of an on-screen object and provide access to an individual portion of recognized text by its index among other recognized text portions or by its contents.

JavaScript, JScript

Python

VBScript

DelphiScript

C#Script

Copy Code

JavaScript, JScript

OCR.Recognize(Aliases.myApp.mainForm).BlockByText("*Help*")

Python

OCR.Recognize(Aliases.myApp.mainForm).BlockByText("*Help*")

VBScript

OCR.Recognize(Aliases.myApp.mainForm).BlockByText("*Help*")

DelphiScript

OCR.Recognize(Aliases.myApp.mainForm).BlockByText('*Help*')

C#Script

OCR["Recognize"](Aliases["myApp"]["mainForm"])["BlockByText"]("*Help*")

More information on optical character recognition

To learn more aboutSee
Recognizing and checking text contentsVerify Text Contents
Recognizing and verifying text contents of grid controlsAbout Table Checkpoints
Locating controls by their text to simulate user actions on themSimulate User Actions
Alternative approaches you can use to recognize objects that you cannot recognize by any standard meansPossible Alternatives to Optical Character Recognition
Resolving issues that may occur in OCR-based testsOptical Character Recognition - Troubleshooting
Migrating your tests created in versions prior to 12.60 to the current OCRMigrate Tests Created in Earlier Versions

Limitations

  • Optical character recognition is not supported in mobile tests running in remote device clouds (appium-based tests).

How do I start?

Follow this tutorial to learn how to create a simple test that uses optical character recognition to locate a UI element in an application:

Optical Character Recognition - Tutorial

Optical Character Recognition (Legacy)

Optical Character Recognition | TestComplete Documentation (7)Using Optical Character Recognition

Prior to version 12.60, TestComplete provided built-in OCR modules. Unlike the current OCR support featuring Google Vision API, those modules:

  • Could recognize only ASCII and Unicode text.

  • Did not provide a straightforward way to simulate user actions on a screen area that contains a needed text fragment.

Optical Character Recognition | TestComplete Documentation (8)Using Optical Character Recognition - Requirements

Learn how to restore legacy modules. Optical Character Recognition | TestComplete Documentation (9) You will not be able to use the new OCR featuring Google Cloud Vision API.

See Also

Object Identification

Optical Character Recognition | TestComplete Documentation (2024)
Top Articles
Latest Posts
Article information

Author: Jamar Nader

Last Updated:

Views: 6062

Rating: 4.4 / 5 (55 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Jamar Nader

Birthday: 1995-02-28

Address: Apt. 536 6162 Reichel Greens, Port Zackaryside, CT 22682-9804

Phone: +9958384818317

Job: IT Representative

Hobby: Scrapbooking, Hiking, Hunting, Kite flying, Blacksmithing, Video gaming, Foraging

Introduction: My name is Jamar Nader, I am a fine, shiny, colorful, bright, nice, perfect, curious person who loves writing and wants to share my knowledge and understanding with you.