Forum Discussion
If your URL to the page has a GUID on it - which is common when a page has to be secure and only for the person logged in, and that GUID is fine and will recognize a name mapping object OK when you record it, and play it back to debug it.
Once you log out, WHAMMO! The next time the test is run and another login happens - even the same user, the GUID no longer matches. Therefore, no page is found and no object on that page either like a textbox contentText match or a button label, H1 text etc will not be found nor would a property checkpoint work.
If that is the issue - then from your name mapping, find the 'page' object. That is the one that has the page's URL defined. You may then edit it, and place a wildcard in the URL replacing the GUID with a '*' wild card. For example:
https://www.my.website/some_additional_querystrings/GUID_IS_NOW_HERE....
change the URL to this then save it in the NameMapping editor - change the above URL to:
https://www.my.website/some_additional_querystrings*
Now the page is found and the GUID can change all it wants.
If it is not a GUID in the URL then you need to make sure all the objects in the DOM are getting checked properly - like make sure your buttons, textboxes, dropdownlists and all the DIVs use an ID and the ID is always unique on the page. In way, the search methods that TestComplete will use to look up the object needed in the NameMapping should always work.
Also ensure your data is NOT changing all of the time. Sometimes a record in the table will move positions up, or down in the table rows. Then a particular column may no longer be where you expected it. I made a JS script that would look for the nth occurrence of a text value.... so maybe tell the script, find me the 3rd occurrence of user == 'Ralph'. Then so long as there are 3 of them in the table - it will find it no matter how many other users may have been added or removed.
Hopefully this all makes sense!
Russ