Forum Discussion

ChrisPro's avatar
ChrisPro
Contributor
9 years ago

Find is very slow for TestComplete10

I test a delphi object and find is very slow in TestComplete10 : ~ 4 seconds.

 

I use "ObjectIdentifier" to find an object :

l_PropName = new Array("ObjectIdentifier", "Visible", "Enabled");
l_PropVal = new Array("MyIdObject", true, true);
lProcess = Sys.WaitProcess("MyProcess", 10, 1);
lRes=lProcess.Find(l_PropName, l_PropVal, 20000, true);

An idea?

 

2 Replies

  • TanyaYatskovska's avatar
    TanyaYatskovska
    SmartBear Alumni (Retired)

    Hi Chrispro,

     

    To speed up the search process, you can try calling the Find method from a closer parent object (the one which is located as much closer to the target object as possible). Right now, you are searching for an object from the application’s process. If your object is located deep in the structure tree, TestComplete can search for it for a long time as it will iterate thought all objects in the tree.

     

    • Colin_McCrae's avatar
      Colin_McCrae
      Community Hero

      You have your search depth set to 20000 deep!!!!!

       

      I don't think I have a "find" of any type that goes more than 10 deep, most are only 2 or 3. And none that search directly off the top level process. A series of 2 or 3 short searches will be more efficient than one HUGE search for small object deep in the object tree.

       

      So maybe:

       

      Process.Find(Page)

      >Page.Find(Panel)

      >>Panel.Find(ObjectYouWant)

       

      Even that cuts out a lot of wasted time searching ...