QTP - Virtual Objects

What are Virtual Objects?

Sometimes, an application under test may contain standard window object but are not recognized by QTP. Under these circumstances, objects can be defined as virtual object(VO) of type button, link etc. so that user actions can be simulated on the virtual objects during execution.


Let us say we are automating a scenario in Microsoft Word. I activated MS word application and I click on any icon in the ribbon. For example, on the Ribbon, Insert tab is clicked and then the user clicks the "Picture" button. A button is recognized as WinObject; hence, importance of virtual objects is pronounced.

Window("Microsoft Word").WinObject("Ribbon").Click 145,45
Window("Microsoft Word").WinObject("Ribbon").WinObject("Picture...").Click 

Creating a Virtual Object

Step 1 − In such scenarios, virtual Objects are created using Virtual Object Manager or New Virtual Object from "Tools" >> "Virtual Object" >> "New Virtual Object" and click the "Next" button.

Virtual Object Step 1

Step 2 − Map the Object against the Class Type and click "Next".

Virtual Object Step 2

Step 3 − Click "Mark Object" Button. A cross hair cursor would appear and mark the object that you would like to map and click "Next".

Virtual Object Step 3

Step 4 − Select the parent of the Virtual object and click "Next".

Virtual Object Step 4

Step 5 − Name the collection in which you would like to store the virtual object and click "Finish".

Virtual Object Step 5

Virtual Object Manager

Virtual object Manager manages the collections of Virtual objects. Testers can add or Delete the Virtual Objects from the Virtual Object manager.

Navigation to Virtual object Manager : "Tools" >> "Virtual Object Manager" as shown below −

Virtual Object Step 6

Using Virtual Objects

After creating the Virtual Objects, the created object can be used as shown below −

Window("Microsoft Word").WinObject("Ribbon").VirtualButton("button").Click

Virtual Object Limitations

  • QTP does not support virtual objects for analog or low-level recording.

  • Checkpoints cannot be added on Virtual Objects.

  • Virtual Objects are not controlled by Object Repository.

  • Though we map an object to a particular class (button or List), all the methods of the native objects are not supported by Virtual objects.

  • Object Spy cannot be used on Virtual Object.

  • The test execution will fail if the screen resolution changes as the co-ordinates change.

  • Application Window should be of same screen size so that Virtual objects are captured correctly.