Text recognition in run-time
Relevant for: GUI tests and components
When working with tests and scripted components, you can use the text and text area checkpoint or output value commands to verify or retrieve text in your objects.
In addition, when working with tests, keyword or scripted components, and function libraries, you can insert steps to capture the text from objects in your application using the .GetVisibleText, the .GetTextLocation test object methods, the TextUtil.GetText or TextUtil.GetTextLocation reserved object methods, or the .GetText (for Terminal Emulator objects).
Note: Text recognition is not supported for objects in the Active Screen.
When you use one of these options, UFT identifies text in your application uses an OCR (optical character recognition) mechanism. When using this OCR engine, you can use the Abbyy OCR text recongition engine (the default option) or the Tesseract OCR engine. When UFT uses the OCR mechanism, a number of factors can affect the text it retrieves. Depending on the characteristics of the text you want to retrieve, you can adjust several OCR configuration options to optimize the way the text is captured. You use the Text Recognition Pane (Options Dialog Box > GUI Testing Tab) to specify the preferred text recognition mechanism and OCR-specific settings.
You should also note the following considerations for performing effective text recognition:
|Fonts in your text
Single text block mode and multiple text block mode sometimes result in different captured text. If you are not sure which text block mode to use, use the default multiple block mode. If the results are not what you expect, then try using the single text block mode.
If you want to use the text recognition mechanism for a large area containing different fonts and backgrounds, we recommend creating several steps to capture the text for each single text block instead of creating one step to capture a multiple text block.
- If the text recognition mechanism retrieves unwanted text information (such as hidden text and shadowed text that appears as multiple copies of the same string) when using the multiple text block mode, use the single text block mode option. To do this, in the Text Recognition pane of the Options dialog box (Tools > Options > GUI Testing tab > Text Recognition node), select Single text block mode. For details, see Text Recognition Pane (Options Dialog Box > GUI Testing Tab).
- If your application uses small fonts (less than 10 pt.) you should use the Tesseract OCR engine with the Preprocess the image before using text recognition option selected.
|Colors and color contrast
- The color schema of the background should be permanent and without gradient.
- High contrast between the background and text is best for text recognition (for example, black text on a white background).
|Text within images
- If your text is found within an image, we recommend using the Preprocess the image before using text recognition option in the Text Recognition pane of the Options dialog box (Tools > Options > GUI Testing tab > Text Recognition mode).
|Dimension for text recognition
- Try to keep the dimensions of the selected text area as small as possible to prevent additional unwanted characters in recognized text.
- Consider the potential movement (change of coordinates) of the object within the window. For example, the screen resolution is often different on different computers, and this can affect the coordinates of the object in the application. Also, during the design and development stages of an application, an object may be moved to make room for other objects or for aesthetic purposes.
- Consider that the operating system, installed service packs, installed toolkits, and so on, can all affect the size and location of an object in an application. Make sure that the dimensions of the selected text area are large enough for different system configurations.