TC 12.20 Isn't Finding My Object in Chrome 57 "Searching for a mapped object took too much time"
I want to click the "New" button. If I hit F12, the object is named "hyperpick_btnmodify_0-btnInnerE1".
In TC, it looks like this: textnodeHyperpickBtnmodify0Btnin
It's failing in TC:
TC is looking for panelHyperpick0:
But I need TC to look at hyperpick_btnmodify_0-btnInnerEl instead:
- Is it possible to do this? If so, how?
- What is "Extended Find Attribute"? What does it do? Would turning it off help?
Now, of all that hierarchy, perhaps the only things necessary to uniquely identify the object are the first panel and the table. So,, TestComplete can do the mapping like this:
What you would see in your NameMapping is that Table0 and buttonSave would have the "extended find" checkbox checked. What this tells TC to do, for Table0, is to look through all the children of panel0 and find the first object that matches the criteria for table zero... Then, it looks at all the children of table0 until it finds the first object that matches the criteria for buttonSave. This clears up some of the "clutter" of all those divs and tables and cells to make your mapping a little more compact.
The draw back to using this is that "finding"... that takes time. And the more the tree is collapsed, the more child objects that need to be searched (like what if that table had 20 columns to search before it found the right button), the longer it takes. TestComplete will write out that hint that you see when it seems to be taking an extra long time to find the item you are looking for.
The solution for that is to insert additional "parent" objects into your tree.
So, from the above example, if it's taking too long, I could do this
I'd then turn off the "extended find" flag on Table0. So, TC no longer needs to scan the children of Panel0 to find Table0, effectively speeding up the search.
In your case, while you're trying to click on the button, that "finding" process bogged down on one of the parent objects (in my example, my warning would come up with "took too much time" on my Table0, not on buttonSave). so... what I would do would be to edit your namemapping and insert a parent object in your tree before panelHyperpick0.
How to do this?
Map the parent object you wish to map. This will place it in your NameMapping, possibly as a child of the page
Drag panelHyperpick0 to be a child of that new object
Depending upon the relationship, you may be able to uncheck the "extended find" box on panelHyperpick0
Your Alias in your test case won't need to change because all you did was change the underlying mapping, not the Aliase used to point to your particular button.
Why automate? I do automated testing because there's only so much a human being can do and remain healthy. Sleep is a requirement. So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group. I love good food, good books, good friends, and good fun.