When Nothing Works (as-in when UFT is not able to identify objects the usual way), Virtual Object in UFT (formerly QTP) is the weapon to achieve awesomeness of automation. Sometimes you find that UFT is not able to recognize an object, even if the object behaves like a standard object. Virtual object helps in such situation, enabling the object recognition and test execution.
Virtual object enables you to define objects as virtual objects and map them to standard classes such as button, text box etc. UFT /QTP emulates the actions on virtual object during the run session. A virtual object is defined using the virtual Object Wizard. The wizard prompts you to select the standard object class to which you want to map the virtual object. You then mark the boundaries of the virtual object using a crosshairs pointer. Next, you select a test object as the parent of the virtual object. Finally, you specify a name and a collection for the virtual object. A virtual object collection is a group of virtual objects that is stored in the Virtual Object Manager under a descriptive name. Virtual Object Manager feature enables us to create and manage virtual objects.
Virtual Object Wizard
Launch Virtual Object Wizard from UFT Menu Option : Tools > Virtual Objects > New Virtual Object
Select Next at Welcome screen
In the next screen, Select the class which most resembles your virtual object. Basically we are mapping the object to standard class. The virtual object will be treated and behave like the standard class object you choose.
Click Next to move to Object Configuration screen. Here you define how this object will be stored. You have two options to choose from
- Entire Parent hierarchy – if you want to add the whole hierarchy in order to identify the object in one occurrence only i.e. within the hierarchy. UFT will not identify object if the hierarchy changes. For example, if the virtual object is defined using Browser(“A”).Page(“B”).Image(“C”), UFT does not recognize it if the hierarchy changes to Browser(“X”).Page(“B”).Image(“C”).
- Parent only – if you want to add only the parent in order to identify object for all hierarchy. For example, if the virtual object was defined using Browser(“A”).Page(“B”).Image(“C”), UFT recognizes the virtual object even if the hierarchy changes to Browser(“X”).Page(“Y”).Image(“C”).
Click Next to move to Save Virtual Object screen. You may want to name your virtual object. So that you can easily distinguish with other objects or in case you are creating multiple virtual objects. Specify the desired object name and the collection name and click Finish to Save your virtual object.
In case, you need to create another Virtual Object. you should select Yes for ” Do you want to define another virtual object?” The wizard will repeat again for your next virtual object.
Virtual Object Manager
Select Tools > Virtual Objects > Virtual Object Manager to open Virtual Object Manager. Virtual object manager list all of available virtual object collections. We can delete the virtual object from virtual object collections.
Enable/Disable Virtual Objects
To disable recognition of virtual objects while recording select Tools > Options > GUI Testing tab General node, and tick the “Disable recognition of virtual objects while recording” option.
In the next post of Virtual Objects – The Descriptive way, you can find how to write descriptive statements with Virtual objects.
- Object Spy does not work for virtual objects
- You should not create Virtual Object for Scroll bars and Labels
- QTP does not support virtual objects for analog or low level recording.