Today I'm going to show:
How to use QTP DP to perform different operations on objects.
For example, how to type text in these edit boxes on Google Sets page:
From previous QTP DP tutorial you know that this code returns a collection of Edits located on Web page:
Set Desc = Description.Create()
Desc("micClass").Value = "WebEdit"
Set Edits = Browser("Google Sets").Page("Google Sets").ChildObjects(Desc)
Desc("micClass").Value = "WebEdit"
Set Edits = Browser("Google Sets").Page("Google Sets").ChildObjects(Desc)
So, to type text in each Edit, we have to process edit boxes from returned collection one by one.
We can access the specified item from a collection by item's index.
For example, the following code types a text in the first edit box:
Edits(0).Set("Text in Edit #1")
And its result is:Note: ChildObjects returns zero-based collection of found objects.
That's why use Edits(0) to access first item, Edits(1) to access second item, and so on.
So, we add a loop to process all edit boxes on a page.
The final QTP script is:
Set Desc = Description.Create()
Desc("micClass").Value = "WebEdit"
Set Edits = Browser("Google Sets").Page("Google Sets").ChildObjects(Desc)
NumberOfItems = Edits.Count
For i = 0 To NumberOfItems - 1
Edits(i).Set("Text in Edit #" & (i+1))
Next
Desc("micClass").Value = "WebEdit"
Set Edits = Browser("Google Sets").Page("Google Sets").ChildObjects(Desc)
NumberOfItems = Edits.Count
For i = 0 To NumberOfItems - 1
Edits(i).Set("Text in Edit #" & (i+1))
Next
This code fills all Edits in. So, the result page looks like:
As you can see - QuickTest Professional Descriptive Programming works correctly.
Note: If the initial page contains more (i.e. 8) or less (i.e. 3) number of edit boxes, our QTP script will work without changes!
Note: Since we do not use QTP Object Repository (QTP OR), this approach can be integrated easily into any existing QTP system. Shared Object Repository is not required!
Summary:
The article shows how to perform operations on objects.
The approach uses QuickTest Professional Descriptive Programming.
Related articles:
- QTP VIDEO - How to run test from command line?
- QTP Descriptive Programming - How to get number of objects
- QTP Descriptive programming - Processing images
- QTP Descriptive Programming - How to close browsers
- QTP - How to get number of pages in PDF file?
- QTP - How to set/get system time and date?
- All QTP visual tutorials
Do you like this QTP tutorial? Would you like to receive them in the future?
If yes, please subscribe to this blog RSS feed or by Email. (How to subscribe? VIDEO guide)
13 comments:
Hi Dmitry,
I am so happy to find this blog which gives important information about QTP.I have a request, could you please show a video on how to use smart identification feature in QTP.
Thanks for your efforts.
Anonymous,
Please motivate me to spend ~20-30 hours and prepare this video :)
hi,
i found this blog to be very interesting and informative for upcoming professionals
Really good examples!!! Many thanks for sharing with us...
One question about the way objects work when pass from one Test-Action to a library.qfl?
I've defined an URL_obj in my test as:
Set url = Browser("name:=real_name").Page("title:=real_title")
then I call a function within an external library with:
call library_function(url)
and then if I try to use that object in the normal way for doing simple stuff, such as:
url.Link("text:=real_text")
I receive the following error:
'Object doesn't support this property or method: 'url.Link'
Is it possible to do something like that? It works if you declare a new Link object just for invoking it, but this is kind of a pain in the ass if you need to do it too often!! Not sure if I'm missing something...
Set link_obj = description.Create()
link_obj("micclass").Value = "Link"
link_obj("text").Value = "real_name"
Set nOccur_link_obj = url.childobjects(link_obj)
nOccur_link_obj(0).Click
Thanks for the article!! Keep the good work...
1. It seems, that the following libe is not executed:
Set url = Browser("name:=real_name").Page("title:=real_title")
Please check it
2. What does library_function do?
If you call the subroutine, I'm getting the same error message.
to Anonymous (September 27),
And what?
Hi Dmitry...
Your blogs are good....
thanks for sharing many useful things....
Thanks,
Swami
Hi Dmitry,
Thank you very much for sharing your thoughts with us. The videos are amazing. I have learned so many things from your blog which clarified my doubts. could you please provide information about frame works. I have one question, who prepares the frame works for QTP means tester or sr.test engineers or managers.
Thank you.
Hi,
Really interesting and learning from this site, how to write the scripts in QTP.
But I have a small question: can we pass unique values for these test boxes?
Hi Dmitry Motevich
Thanks for providing video.Really Useful.
One question that i need to ask is how we identify dynamic objects through smart identification.
I mean to say i need to know the diference in smart identification & Descriptive programming.
Would be great if you can clear out this confusion.
Many Thanks
Nancy
HI,
I found this site very very helpful in Learning QTP. In fact I will recommend my friends also to visit and learn more - Rakesh
Post a Comment