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

本文介绍如何在QTP中为WinList对象自定义Select方法,支持正则表达式匹配及多选功能。通过注册用户函数实现对列表项的灵活选择,并提供使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QTP 中自定义测试对象 WinListSelect 方法,支持正则表达式和多选,类似的思想可以扩展到其他的 list 类型的控件。

下面的脚本摘自 QTPCodeSamplesPlus

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")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值