Before simulating a user action over an object in a tested application, TestComplete first finds that object in the system. To do this, it uses the recognition criteria set for the object in the Name Mapping repository. If TestComplete finds the object that matches the criteria completely, it simulates the action.
If TestComplete fails to find an object that matches the criteria completely, it will attempt to find a similar object:
It will check all the objects on the same level of the hierarchy where the missing object resides. If the Extended Find is enabled, it will also check all the objects down the hierarchy levels.
It will check whether the mapping criteria of the missing object have been changed. TestComplete will search for similar objects among objects of the same class and type as the missing one.
Among all similar objects that TestComplete will find, it will select the one closest to the missing object by comparing them to the missing object’s screenshot that the Name Mapping repository stores.
If a similar object is found, TestComplete will simulate the user actions over it and continue running the test. It will post this warning message suggesting that you update the tested object’s recognition criteria to match the found object:
If TestComplete fails to find any suitable object, it will report the “The object does not exist” error.
In the Details panel of the message, you can view the table with the expected recognition criteria of the original object, actual properties of the replacement object, and suggested changes:
In the Picture panel, you can view the image of the found replacement object.
Important: TestComplete will use the found replacement object only during the current test run. After the test run is over, TestComplete will revert all the changes made to the recognition criteria. When you re-run the test, TestComplete will again use the initial recognition criteria.
To resolve the warning message, update the object recognition criteria to use the replacement object during all subsequent test runs. To do this, click Accept Intelligent Fix:
Confirm the changes if needed. TestComplete will apply the suggested changes to the tested object’s recognition criteria stored in the Name Mapping repository.