求助:QTP创建Object为可变对像时如何解决
各位大侠,大家好,小北初学QTP,在录制脚本的时候,遇到一个非常棘手的问题,需要有经验的大虾们,帮帮忙任务目的:使用HDTunePro.exe测试硬盘性能,需要使用QTP录制自动化测试的脚本
任务问题:HDTunePro.exe有一个温度检测功能,温度显示在一个Static的框中,在录制脚本的过程中,QTP会自动创建一个当前温度的Object(如“46℃”),所以我回放脚本的时候,如果当前温度与录制脚本时的温度值不同,回放就会失败
HDTunePro软件:
HDTunePro软件下载地址:http://mydown.yesky.com/soft/utilitie/test/132/440132.shtml
脚本:
录制后的脚本代码如下:SystemUtil.Run "F:\TestIO","open"
Window("TestIO").WinListView("SysListView32").Activate "HDTunePro.exe"
'Dim title
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").Maximize
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinTab("46℃").Select "文件基准"
'set title = left(Dialog("HD Tune 专业版 v3.00 - 硬盘工具").GetVisibleText(1131,38,1209,50),2)
'MsgBoxTimeOuttitle,"",1
'Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinTab(title & "℃").Select "文件基准"
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinComboBox("文件长度").Select "512 MB"
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinButton("开始").Click
Wait 5
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinButton("停止").Click
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinButton("退出").Click跪求哪位英雄帮助解决一下这个问题? 有些注释没有删掉,看时直接忽略吧 直接在对象库中把该对象显示的那个温度值去掉,不行的话,直接删掉这个属性值再加一个可以唯一识别的属性试试 如果这个温度不是测试的对象, 可以注释掉, 如果需要测这个 object,可以将温度换为其他不变的属性~~ 比如 name 啊这些 我试过,包括直接将HDTunePro最大化后,直接使用GetVisibleText获取坐标,但是QTP只认这个温度的标签
我用spy++将HDTunePro的属性截了个图,其它的控件Caption都是空的
就是这个标签,它应该有一个text的属性,属性值就是温度,把它删掉,再加一个属性,比如window id 用描述性编程去写这句,或者参数化这个温度值,参数的值用regular expression。 用描述性编程去写这句,或者参数化这个温度值,参数的值用regular expression。
softCore 发表于 2011-10-13 18:50 http://bbs.51testing.com/images/common/back.gif
这个......
不太懂啊,求指教 就是这个标签,它应该有一个text的属性,属性值就是温度,把它删掉,再加一个属性,比如window id
JUICY525 发表于 2011-10-13 18:02 http://bbs.51testing.com/images/common/back.gif
这个Caption应该就是它的text属性了,这个HDTunePro软件是从网上下载的,我没找到也没法改它的属性,很郁闷 回复 8# kingsunnyv
attachments/swfupload/1110132028a1d4dee22a4e5579.png 按上面那个去做,就不会遇到不同的温度不识别的问题了。 用正则表达式也试过了,还没不行,看来只能换一个硬盘测试工具了 本帖最后由 kingsunnyv 于 2011-10-17 10:37 编辑
按上面那个去做,就不会遇到不同的温度不识别的问题了。
softCore 发表于 2011-10-13 20:29 http://bbs.51testing.com/images/common/back.gif
谢谢SoftCore大佬,己经用正则表达式搞定了,表达式的值用[\d][\d]或[\d]{2}
正则表达式威武,正则表达式荡漾 看了一下推荐你用这个更简单的方式来解决,修改关于wintable的识别方式
在我的win2003中,该控件的windows id是不变的12320,所以你修改一下就行了
描述性的写法是
Set newtable=description.Create()
newtable("window id").value=12320
newtable("nativeclass").value=SysTabControl3
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").Activate
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinTab(newtable).Select "信息"
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinTab(newtable).Select "健康" 看了一下推荐你用这个更简单的方式来解决,修改关于wintable的识别方式
在我的win2003中,该控件的windo ...
云层 发表于 2011-10-17 11:46 http://bbs.51testing.com/images/common/back.gif
:)果然好使,受教了!!!
看来得提升一下工具的版本了 描述性编程受益匪浅,非常有用~
页:
[1]