As per QTP user guide, this is how QTP works with regards to learning and identifying objects.
1. Mandatory properties - QTP always learsns them
2. Assistive Properties - Learns one at a time until QTP creates an unique description for the object
(....I am not going to mention about Ordinal Indentifier and Smart identification story here as my question relates to only these two points..)
QTP uses both mandatory and assistive properties to identify an object
Now here is my Question:
1. I've removed all default properties listed in the Object Identification dialog box for certain object classes (Ex: Link, WeElement, WebEdit, etc..)
2. Made sure there is not even a single property configured for certain objects in "Object Identification" dialog box in my QTP settings
3. Now I have captured a simple Object Repository by using "Object Repository Manager" and then wrote a small QTP script as well
4. My intention here is to check (for my understanding) that QTP works as specified in the User guide. So I have written some simple instructions like this.
After this step I expected QTP throw some kind of error as this property has not been configured in "Oject Identification" dialog box which instructs QTP what properties it should capture.
But to my surprise QTP displayed correct value.
So I just thought of giving it another shot. I went ahead and kept default Mandatory properties for all the above mentioned objects as they were before but made sure there were no assistive properties defined for those objects.
I ran the same script again and tried to display assistive properties of the object by using GetTOProperty thinking that they will not be displayed.
But QTP succesfully displayed those properties as well.
Can anybody throw some light on this behavior.
How come QTP remember properties of an object which QTP is not saupposed to use to create the object description in the first place (because these properties were not configured in the Object identification dialog box)