Work With List Box QTP
Posted by rajivkumarnandvani on May 3, 2009
When we use list box Object in QTP. QTP perform following operation on listbox . like
Browser(“Browser”).Page(“Page”)..WebList(“ListBox”).Select “ListBoxValue”
It select the value from List Box that value must be present in list box otherwise QTP give an error like that
“Cannot identify the specified item of the ListBox object. Confirm that the specified item is included in the object’s item collection.”
So before selection any value in list box Always insure the value you are going to select in list box must be present by use this method/Function
dim objListBox, sValuematch ,bTrue
set objListBox = Browser(“Browser”).Page(“Page”)..WebList(“ListBox”)
sValuematch =”Type Value that need to be check”
bTrue = fn_Valuematch_for_weblistbx(objListBox ,sValuematch )
if bTrue =True then
Browser(“Browser”).Page(“Page”)..WebList(“ListBox”).Select “ListBoxValue”
end if
REM*************************************************************************************************************
REM ” this function Check the value u define match With in WEBListbox or Not if match return true otherwise False
Public Function fn_Valuematch_for_weblistbx(byval m_listboxobject, byval m_valuematch)
”check is m_listboxobject object or not
If IsObject(m_listboxobject ) = true and IsNull(m_valuematch) = false Then
Dim m_Getallfield,m_arAllfield,m_val,m_actual
m_arAllfield = m_listboxobject.GetROProperty(“all items”)
m_arAllfield =Split (m_arAllfield,”;”)
For each element in m_arAllfield
If m_valuematch = element then ‘ compare the text
fn_Valuematch_for_weblistbx=true ” if value match then return true & exit thr loop
exit for
else
fn_Valuematch_for_weblistbx = false
end if
Next
else
print “Error wrong Parameter for function fn_Valuematch_for_listbx”,”Check paramenter value”
End If
End Function
REM*************************************************************************************************************
This entry was posted on May 3, 2009 at 6:46 am and is filed under QTP, WEB, WINDOWS. Tagged: ListBox, QTP, WebList. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
Albert Gareev said
There is situation when with the example you presented QTP will still be throwing error message and stopping the execution: if the browser window is disabled by a pop-up dialog. In this case the item may exist by the selection is unavailable.
The following code allows handling all types of errors.
On Error Resume Next
objWebList.Select sItem
If Err.Number 0 Then
‘put your error handling here
End If
Checking every single item in the list is very useful when you do selection by RegEx i.e. you don’t know how exactly the item is displayed.
sContent = objWebList.GetROProperty(“all items”)
dvContent = Split(sContent, “;”)
For iter = 0 To UBound(dvContent)
‘ If you want to ignore case – define boolMatchCase flag as FALSE
If Not boolMatchCase Then
sItem = LCase(dvContent(iter))
Else
sItem = dvContent(iter)
End If
‘ Regex_Test is a simple function based on the RegExp object. Returns TRUE if the second argument matches the first one
If Regex_Test(sItem, sValue) Then
intItemIndex = iter
sItemValue = dvContent(iter)
ListFindItem = TRUE
Exit Function
End If
Next
ListFindItem = FALSE
rajivkumarnandvani said
Thanks for the comment.
I write the just simple way to work with list box not with error handling in proper way there will be many cases I did not take care of them just mention the basic which we generally do mistake in our script
Your comments really very good
Priya said
I need a code to select random value from the list. I don’t need to compare with any value.
What changes I need to make for the following code?
Dim intNumItems, intRandomNumberIndex, strRandomValue
intNumItems = Browser(“webpage”).Page(“page1”).WebList(“typeString”).GetROProperty(“item counts”)
intRandomNumberIndex = Int(intNumItems * Rnd + 1)
strRandomValue = Browser(“webpage”).Page(“page1”).WebList(“typeString”).GetItem(“intRandomNumberIndex”)
Browser(“webpage”).Page(“page1”).WebList(“typeString”).Select “strRandomValue”
rajivkumarnandvani said
Hi Priya,
just you did little mistake rest u did well 😉
see your last line you using variable strRandomValue as a string just change this thats it only.
Browser(“webpage”).Page(“page1″).WebList(“typeString”).Select “strRandomValue” changed to
Browser(“webpage”).Page(“page1″).WebList(“typeString”).Select strRandomValue
Priya said
Oh so silly.
Thank you
rajivkumarnandvani said
Most Welcome 🙂
Priya said
sorry another one.
i have a select date pop-up box. Now each iteration should select future date and time. How to do this?
Below script is original by recording. extend_2 is image link (like a calendar image which on clicking opens date/time popup box)
On this pop-up, need to select time from drop down list and then click on the date link.
Browser(“webpage”).Page(“page”).Image(“extend_2”).Click
Browser(“webpage1”).Page(“page1”).WebList(“time”).Select “4:20 pm”
Browser(“webpage1”).Page(“page1”).Link(“31”).Click
Appreciate your help
rajivkumarnandvani said
From date popup you can not select with particular date wise with QTP. Is that Text Field where you can enter the date by type? if that so then you can use date function like
Browser(“webpage1″).Page(“page1″).Webedit().set date
see date function in qtp help file
Priya said
No that’s the thing. Cannot type manually in text field.
Anyways thank you
rajivkumarnandvani said
Hi can u send me web page of that application save webpage complete (file menu –>save page as) in Zip along with snap shot of that. let me see what else you can do becoz it seems popup is also web element
rajivkumarnandvani@gmail.com
Arun Kumar C said
Hello Guys ,
How could choose value from a list box through Datadriven approach.
Assume i am reading value from Excel … ( Ex : Consider list box in Mercury tours demo website ) ..
rajivkumarnandvani said
Hi Arun,
just go through the help file of QTP Find parametrization, there you will get the solution. 😉
Anonymous said
hi this is srikanth ,i want to select listbox value through datadriventesting using excelsheet
Eg:i want to select “M” column value,in listbox that value available in the application,how to select
how to select
rajivkumarnandvani said
getvaluefromsheet = DataTable.Value(“Column_Name”, dtGlobalSheet)
Browser(“Browser”).Page(“Page”)..WebList(“ListBox”).Select getvaluefromsheet
Saurabh said
Hi Saurabh here…
in ur above reply to arun….what if theres a case of web grid ?
if we have to select from a web grid ?
rajivkumarnandvani said
Hi Saurabh,
Refer this http://testeverythingqtp.blogspot.com/2011/06/get-cell-data-from-webtable-qtp.html
ashutosh said
i use same code as above but it give error on four line “more then on eargument
Dim intNumItems, intRandomNumberIndex, strRandomValue
intNumItems=Browser(“Title:=PAWZ.*”).Page(“title:=PAWZ.*”).Frame(“name:=body”).WebList(“name:=fldOS”).GetROProperty(“items count”)
intRandomNumberIndex = Int(intNumItems * Rnd + 1)
strRandomValue=Browser(“Title:=PAWZ.*”).Page(“title:=PAWZ.*”).Frame(“name:=body”).WebList(“name:=fldOS”).GetItem(“RandomNumberIndex”)
Browser(“Title:=PAWZ.*”).Page(“title:=PAWZ.*”).Frame(“name:=body”).WebList(“name:=fldOS”). Select strRandomValue
rajivkumarnandvani said
strRandomValue=Browser(“Title:=PAWZ.*”).Page(“title:=PAWZ.*”).Frame(“name:=body”).WebList(“name:=fldOS”).GetItem(RandomNumberIndex)
you are using your variable RandomNumberIndex as a text in GetItem method by using double quote remove the double Quote
Thanks
Hanaan said
given a situation where there are three or more items in the web list i want qtp to select each item one by one and perform an action in my case to select the the item then click on a link at this point i want the coding to look for a value if found then ok else it needs to loop with every item on the list until either the value is found or there are no more items on the list to select
Ch said
Hi,
I am getting error: “cannot identify object value..”
myyear=Datepart(“yyyy”,Now()) -1
Browser(“EASE”).Page(“EASE”).WebList(“name:=select”,”Index:=0″).Select “Oct”
Browser(“EASE”).Page(“EASE”).WebList(“name:=select”,”Index:=1″).Select myyear
Anonymous said
Unable to select the list items present under webtables ( ex : Frame–>Webtable1–>webtable2–>webtable3–>SAPList( items)) here I am able to view the webtables while object spying and if we add the SAPList the SAPList will add directly to the Frame.
Note : this is SAP web application.
Sreekanth