Forum Discussion
Hi Ionut,
It looks like the mapping criteria are still insufficient to recognize the problematic object. To understand how object are recognized, follow the steps below:
1. Insert the following routine call in your test before retrieving the problematic object (change the process name):
LogAppStructure(Sys.Process("MyProcessName"))
Here is the LogAppStructure routine code:
function LogAppStructure(obj)
{
var count, i, Str;
var params = new Array();
params.push("WndClass");
params.push("WndCaption");
params.push("Index");
params.push("VisibleOnScreen");
params.push("Exists");
params.push("Visible");
params.push("FullName");
params.push("ClrFullClassName");
Str = "";
for (var i = 0; i < params.length; i++) {
if (IsSupported(obj, params))
Str += params + " = " + VarToStr(eval("obj." + params)) + "\r\n";
}
Log.AppendFolder(obj.Name, Str);
for (var i = 0; i < obj.ChildCount; i++) {
LogAppStructure(obj.Child(i));
}
Log.PopLogFolder();
}
2. Execute your test and reproduce the "Ambiguous recognition of the tested object" problem. The LogAppStructure function will post the entire structure of the tested application to the test log, and you will be able to see how objects are recognized right before the problem occurs.
3. If you fail to find the cause of the problem by using the test log, zip your entire TestComplete project suite folder along with the log of the test execution and send us the archive via our Contact Support form. Make sure that messages in your log correspond to correct actions in the latest version of your test.