Check Out the Latest News About SmartBear Connect

Want More?

Register to get access to exclusive content

Reply
Regular Contributor
Posts: 171
Registered: ‎12-30-2013
Accepted Solution

TC 12.20 Isn't Finding My Object in Chrome 57 "Searching for a mapped object took too much time"

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".

 

tc01.png

 

In TC, it looks like this: textnodeHyperpickBtnmodify0Btnin

 

tc02.png

 

It's failing in TC:

 

tc03.png

 

TC is looking for panelHyperpick0:

 

tc05.png

 

But I need TC to look at hyperpick_btnmodify_0-btnInnerEl instead:

 

tc06.png

 

- Is it possible to do this? If so, how?

- What is "Extended Find Attribute"? What does it do? Would turning it off help?

 

Please note, we are using Keyword tests, as the QA Department does not have programming backgrounds. If we need to add simple code snippets, we can in JavaScript, but the tests are not fully coded. Just recorded.

Thank you, Heidi / Quality Assurance Specialist
Highlighted
Posts: 3,764
Topics: 33
Kudos: 1,160
Solutions: 241
Registered: ‎11-30-2009

Re: TC 12.20 Isn't Finding My Object in Chrome 57 "Searching for a mapped object took too much

[ Edited ]

Extended find shows up as a checkbox in your name mapping.... the idea behind it is that, in your web application, you may have an object that renders something like

 

Sys.Browser.pageXXX.Panel(0).Panel(1).Table(0).Cell(1,2).Panel(0).Button('Save')

 

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:

 

NameMapping.sys.Browser.Panel0.Table0.buttonSave  

 

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

 

NameMapping.NameMapping.sys.Browser.Panel0.Panel1.Table0.buttonSave  

 

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?

 

  1. Map the parent object you wish to map.  This will place it in your NameMapping, possibly as a child of the page
  2. Drag panelHyperpick0 to be a child of that new object
  3. 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.


Robert Martin
[Community Expert Group]
Please consider giving a Kudo if I write good stuff
----

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.

Extensions available
Community Leaders Program
Let's Meet in Boston
Try QAComplete Now