现在的位置: 首页 > 综合 > 正文

在QTP中自定义测试对象WinList的Select方法

2013年08月24日 ⁄ 综合 ⁄ 共 1595字 ⁄ 字号 评论关闭


QTP
中自定义测试对象
WinList

Select
方法,支持正则表达式和多选,类似的思想可以扩展到其他的
list
类型的控件。

 

下面的脚本摘自
QTP

CodeSamplesPlus

 

Function SelectRegExp(Obj, patrn, Button,
Offset)

   

dim NumOfItems, i, CurrentValue, regEx, ItemToSelect, oldFilter

   
'
Initialize the regular expression object with the pattern

   

Set regEx = New RegExp

   

regEx.Pattern = patrn

   

regEx.IgnoreCase = False

 

   

oldFilter = Reporter.Filter ' save the default setting

   

Reporter.Filter = 2 ' Send only errors

   

ItemToSelect = -1

   
'
retrieve the number of items in the list

   

NumOfItems = obj.GetROProperty("items count")

   

For i=0 to NumOfItems-1

       

CurrentValue = obj.GetItem(i)

       

If regEx.Test(CurrentValue) Then

           

If (ItemToSelect <> -1) Then

               
SelectRegExp = -1 ' item not
unique

               
Reporter.Filter = oldFilter

               
Exit Function

           

End If

           

ItemToSelect = i

       

End If

   

Next

   

Reporter.Filter = oldFilter ' restore the default setting

   
'
The actual selection

   

If (ItemToSelect >= 0) Then

       

SelectRegExp = obj.Select(ItemToSelect, Button, Offset)

   

Else

       

SelectRegExp = -1

   

End If

End Function

 

Function SelectItems(Obj, items)

   

Dim idx, item

   

If (StrComp(obj.GetROProperty("type"), "select-multiple",
1) = 0) Then

       

For Each item In items

           

obj.Select(item)

       

Next

   

Else

       

obj.Select(items(0))

   

End If

End Function

 

' Override the Select function of the
WinList

RegisterUserFunc "WinList",
"Select", "SelectRegExp"

 

' Or add the SelectRegExp function to the
WinList object

RegisterUserFunc "WinList",
"SelectRegExp", "SelectRegExp"

RegisterUserFunc "WinList",
"SelectItems", "SelectItems"

 

' Example of usage:

WinList("mylist").Select
"2002.*"

WinList("mylist").SelectItems
Array("item1", "item3", "item6")

 

 

 

抱歉!评论已关闭.