51Testing软件测试论坛
标题:
来之 陈能济 主编的QTP自动化测试中一段脚本,请高人帮助理解一下
[打印本页]
作者:
jf_test
时间:
2009-7-28 10:38
标题:
来之 陈能济 主编的QTP自动化测试中一段脚本,请高人帮助理解一下
'正则表达式在QTP中的应用,通过使用以下的代码重写WinList控件的Select方法来实现
Function SelectRegExp(Obj,patrn,Button,Offset)
Dim NumOfItems,i, CurrentValue, regEx, ItemToSelect, oldFilter
Set regEx = New RegExp '初始化正则表达式
regEx.Pattern = patrn
regEx.IgnoreCase = False '区分大小写
oldFilter = Reporter.Filter '保存默认设置
Reporter.Filter = 2 ' 仅发送设置
ItemToSelect = -1 '获得测试对象的items count属性
NumOfItems = obj.GetRoProperty("items count") '为什么需要获得测试对象的items count属性?
'下面这个循环实现的什么功能?
For i = 0 To NumOfItems-1
CurrentValue = obj.GetItem(i)
If regEx.Test(CurrentValue) Then
If (ItemToSelect <> -1) Then
SelectRegExp = -1 ' 表示匹配项不唯一
Reporter.Filter = oldFilter
Exit Funtion
End If
ItemToSelect = i
End If
Next
Reporter.Filter = oldFilter '重置默认设置
'做出选择的动作
If(ItemToSelect >= 0) Then
SelectRegExp = obj.Select(ItemToSelect, Button, Offset)
Else
SelectRegExp = -1
End If
End Function
‘重写WinList控件的Select方法
RegisterUserFunc "WinList", "Select", "SelectRegExp"
Window("Flight Reservation").Dialog("Flights Table").Activate
Window("Flight Reservation").Dialong("Flights Table").WinList("From").Select "15797.*"
作者:
intothestorm
时间:
2009-7-28 10:55
标题:
天下代码一大抄啊
遍历list对象中的所有item,并匹配唯一项。
作者:
shanxi
时间:
2009-7-28 10:57
标题:
回复 1# 的帖子
还是要保持竞争比较好
给出不同的框架实现,竞争出最优秀的那个
别出本书都一样的写法。
作者:
nbkhic
时间:
2009-7-28 11:44
....代码都差不多,遍历而已。
作者:
jf_test
时间:
2009-7-28 11:49
标题:
回复 2# 的帖子
oldFilter = Reporter.Filter '保存默认设置
Reporter.Filter = oldFilter '重置默认设置
能说 一下上面这两句什么意思吗?
SelectRegExp = -1 ' 表示匹配项不唯一
为什么要让SelectRegExp 等于-1而不是其他的值呢。
新手可能问的比较初级 见谅
[
本帖最后由 jf_test 于 2009-7-28 11:50 编辑
]
作者:
intothestorm
时间:
2009-7-28 12:06
编码习惯,出错返回-1。
两个SelectRegExp = -1,第一个表示匹配到多个,第二个表示没有匹配到。
作者:
jf_test
时间:
2009-7-28 12:53
标题:
回复 6# 的帖子
感谢!
作者:
jf_test
时间:
2009-7-28 17:02
标题:
回复 6# 的帖子
在讨饶一下,ItemToSelect = -1 怎么理解
ItemToSelect 这这段脚本中起到什么作用?
作者:
intothestorm
时间:
2009-7-30 10:52
用来储存匹配到的item。
一但匹配到 ItemToSelect = i,(<>-1),此后的loop如果再次匹配到就会直接exit function.
If(ItemToSelect >= 0) Then
这里用来判定是否有item被匹配到。
建议你在code上加个断点,watch关心的变量,自己debug看看。
自己动手才丰衣足食
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2