This post discusses on concepts of descriptive programming in QTP through questions and answers. Difference between DP and OR, types of DP, various examples are explained in this article
Question 1: What is descriptive Programming?
Answer: Descriptive programming allows working on an object
by describing properties of the object at run time. Descriptive Programming
provides flexibility to select properties. For e.g.: Suppose we have Web Object,
we can use only html Id if defined for the object and some other properties if
html id is not defined such that description of object is unique.
Question 2: What are different types in which descriptive programming can be implemented?
Answer: Descriptive programming can be implemented using
string based description or object based description:
a. String based Description
b. Using Description Object
Question 3: What is String based Description approach for descriptive programming?
Answer: In String based description, we create a description string similar to the tree structure we get on recording in QTP. So what we do is replace the tree structure with description string:
e.g: Browser(“Google”).Page(“Google”).WebEdit(“q”).set
“nitin”
In Case of Object Repository(Recording) is expressed in Descriptive
Programming as :Browser(“name:=Google”).Page(“name:=Google”).WebEdit(“html
id:=qq”,”index:=0”).Set “nitin”
Note: We can
have parent object defined using OR and child object using DP, but vice versa
is not possible, i.e Parent object description using DP and child object using OR.
Browser(“Google”).Page(“Google”).WebEdit(“html
id:=qq”,”index:=0”).Set “nitin” is correct but
Browser(“name:=Google”).Page(“Google”).WebEdit(“html
id:=qq”,”index:=0”).Set “nitin” is incorrect
Question 4: How is Descriptive programming implemented using description object?
Answer: Using description object, we create description object and add properties to the object
e.g: Set objdesc = description.create
objdesc(“name”).value =”google”
Browser(Objdesc).Close
Or
Set objdesc = description.create
objdesc(“name”).value =”search”
Browser("Google").Page("title:=.*").WebButton(objdesc)
Question 5: I want to know number of links in a page, how Can I found the same using description object
Answer: Code
to find number of links in a page is:
Set objLink=Description.Create ‘’Create a
description object
objLink("html tag").value="A" ‘’Now the description object will refer to collection of object with tagName as “A”
set olnk=Browser("Google").Page("Google").ChildObjects(objLink) ‘’Collection of all links in page(“Google”)
iCount = olnk.Count ‘’Count of all links in the page.
MsgBox “Count of links in Page are” & iCount
objLink("html tag").value="A" ‘’Now the description object will refer to collection of object with tagName as “A”
set olnk=Browser("Google").Page("Google").ChildObjects(objLink) ‘’Collection of all links in page(“Google”)
iCount = olnk.Count ‘’Count of all links in the page.
MsgBox “Count of links in Page are” & iCount
Similar to
number of link, we can find number of Editbox (tagname as Input), Image(Img)
and so on in a page
Question 6: I want to know, if certain object exist in a page and create a generic function to verify object of various types, How to code for this?
Answer:
Function below can be used to create a common function to verify existence of
various types of objects in the page:
Call Func_IsExistsObject(“Html
id>abcd”,”WebEdit”,)
Public
Function Func_IsExistsObject(strobjDescObj,strObjType,)
On error
resume next
Func_IsExistsObject
= "False" ‘’ Set the flag as ‘False’
at start of test execution
Set objDesc=
Description.create ‘’create
description object
strobjDesc =
split(strobjDescObj,">")
objdesc(strobjDesc(0)).value
= strobjDesc(1)
objdesc("index").value
= 0
If(ucase(strObjType)
= "WEBBUTTON") Then
Func_IsExistsObject
= Browser("Google").Page("title:=.*").WebButton(objdesc).Exist
ElseIf(ucase(strObjType)
= "IMAGE") Then
Func_IsExistsObject
= Browser("Google").Page("title:=.*").Image(objdesc).Exist
ElseIf(ucase(strObjType)
= "CHECKBOX") then
Func_IsExistsObject
= Browser("Google").Page("title:=.*").WebCheckBox(objdesc).Exist
ElseIf(ucase(strObjType)
= "PAGE") then
Func_IsExistsObject
= Browser("Google").Page(objdesc).Exist
ElseIf(ucase(strObjType)
= "WEBELEMENT") then
Func_IsExistsObject
= Browser("Google").Page("title:=.*").WebElement(objdesc).Exist
ElseIf(ucase(strObjType)
= "WEBTABLE") then
Func_IsExistsObject
= Browser("Google").Page("title:=.*").WebTable(objdesc).Exist
ElseIf(ucase(strObjType)
= "WEBLIST") Then
Func_IsExistsObject
= Browser("Google").Page("title:=.*").WebList(objdesc).Exist
ElseIf(ucase(strObjType)
= "WEBEDIT") Then
Func_IsExistsObject
= Browser("Google").Page("title:=.*").WebEdit(objdesc).Exist
ElseIf(ucase(strObjType)
= "LINK") then
Func_IsExistsObject
= Browser("Google").Page("title:=.*").Link(objdesc).Exist
End If
Exit
Function
Question 7: How to close all browsers except QC using descriptive programming?
Answer: Below lines of code can be used to close all
browsers except QC using descriptive programming:
Set oBrowser
= Description.Create
oBrowser("micclass").Value
= "Browser"
Set ColBrowser=
Desktop.Childobjects(oBrowser)
For i = 0 to
CollBrowser.count -1 step 1
If Instr(CollBrowser (i).GetROProperty("Name"),
"Quality Center") = 0 Then
CollBrowser(i).Close
End If
Next