RSS Feed

QTP Descriptive Programming – How to get number of objects

Posted on

I’m going to explain and show QTP Descriptive Programming (DP) through Google Sets site:


The goal of the present QTP tutorial is to describe:
How to get number of controls (Links, Edits, Images, etc) with QTP DP.

Let’s investigate Descriptive Programming on examples.
First of all, we should understand what Descriptive Programming means:
What is QuickTest Professional Descriptive Programming (QTP DP)?

Answer: QTP DP is a run-time processing of objects which are not located in QTP Object Repository.

I’ve created new QTP script which starts with page.
This QTP script is simple enough:

Set Desc = Description.Create()
Desc(“micclass”).Value = “WebEdit”
Set Edits = Browser(“Google Sets”).Page(“Google Sets”).ChildObjects(Desc)
MsgBox “Number of Edits: ” & Edits.Count


How does QTP Descriptive Programming work?
First of all, I’ve created new Description object:
Set Desc = Description.Create()
Description object contains collection of properties, which identify any UI object such as a browser, a page, a dialog, a list, a button etc.
To specify that we want identify all Edits on browser’s page I use “micclass” property:
Desc(“micclass”).Value = “WebEdit”
Note: the “mic” prefix in “micclass” stands for “Mercury Interactive Constant”.
How do you know the class name (“micclass”) of object?
Use Spy for that:


Open QTP object Spy and check recorded properties of object.
For example, these are properties of Edit:


As you can see, there is “Class Name” property and its value – “WebEdit”. So, “WebEdit” is a value of Class Name of all Edits located on Web page.
Note: “Class Name” is a synonym of “micclass”.

I gathered Class Names of Web objects in this table:

# Type of Web object Class Name(micclass)
1 Web Browser Browser
2 Page Page
3 Edit box WebEdit
4 Image Image
5 Link Link
6 Web Element WebElement
7 Button WebButton
8 Checkbox WebCheckBox
9 Combobox (DropDownList) WebList
10 Table WebTable

Since we created Description object for all edit boxes, we can use this description to get all specified objects ( = edit boxes).
The next step returns the collection of all child objects (i.e. edit boxes) contained within the page:
Set Links = Browser(“Google Sets”).Page(“Google Sets”).ChildObjects(Desc)

To get the number of found objects in a returned collection, we use Count property:
MsgBox “Number of Edits: ” & Links.Count

And the result is 5 found Edits on Google Sets page:


So, this is a mechanism of QuickTest Professional Descriptive Programming.

Also, we can use the same code to get number of others objects – Links, Images, Buttons, etc.
For that I modified QTP script:

Function GetAllSpecificControls(Page, MicClass)
Set Desc = Description.Create()
Desc(“micclass”).Value = MicClass
Set GetAllSpecificControls = Page.ChildObjects(Desc)
End Function
Function GetAllEdits(Page)
Set GetAllEdits = GetAllSpecificControls(Page, “WebEdit”)
End Function
Function GetAllButtons(Page)
Set GetAllButtons = GetAllSpecificControls(Page, “WebButton”)
End Function
Function GetAllLinks(Page)
Set GetAllLinks = GetAllSpecificControls(Page, “Link”)
End Function
Function GetAllImages(Page)
Set GetAllImages = GetAllSpecificControls(Page, “Image”)
End Function
Set oPage = Browser(“Google Sets”).Page(“Google Sets”)
MsgBox “Number of Edits: ” & GetAllEdits(oPage).Count
MsgBox “Number of Buttons: ” & GetAllButtons(oPage).Count
MsgBox “Number of Links: ” & GetAllLinks(oPage).Count
MsgBox “Number of Images: ” & GetAllImages(oPage).Count

The result of this QTP script is the following:


You can compare the result with the initial web page (see first image in the present article) and verify that QTP Descriptive programming works correctly – it returns correct numbers of objects.

I’ve explained and shown the mechanism of QuickTest Professional Descriptive Programming (QTP DP).
The present QTP tutorial explains how to get number of different objects – Edits, Links, Images, Buttons, etc.

I hope, that this article has helped you to understand QTP DP.
The future QTP tutorials will cover others questions on QTP Descriptive Programming.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: