如何用QTP对一个重复操作做迭代处理??
我用QTP录制了一个用软件打开图纸简单的脚本,其中有一个弹出框,反复弹出,每次都要单击“取消”按钮。由于每次打开一幅图纸,这个弹出框重复出现的次数不同,所以要迭代的话,还要有判断条件。
我试着用参数化方式,发现不能参数化。因为是个对话框,不是文件之类的数据。
是不是要用脚本?如if。。else?
但是我对脚本编程不熟悉,会简单的c。
我想在专家视图里面编辑,不知道如何操作。请各位指教。
如图:我想把重复的步骤迭代,不可以参数化
file:///D:/我的文档/My%20Pictures/未命名.bmp
[ 本帖最后由 gily19821116 于 2009-6-1 13:17 编辑 ] 用一个while...wend循环即可,在循环里判断确定提示框是否出现,如果出现则执行点击操作,否则等待一秒;
还应该设置一个循环终止的条件,让脚本判断某个对象是否出现,如果出现则认为点击完了确定按钮,循环中止
关键在于while循环里的处理 重复的步骤可以提取出来做个SUB 来调用,调用可以通过多种循环语句实现,如果需要判定,就需要确定判定条件是什么.看不到图...是个红叉
回复 1# 的帖子
虽然看不到你的图,我不过我想说不管什么样的编程语言,编程的思想是万物归宗的,是相同的,也是很重要的楼主有空的话可以稍微学习一下数据结构和软件工程之类的书籍 2楼 是正解 哈哈
回复2楼
我不知道判断条件那里如何写。是要这样吗?
要迭代的语句:Window("ZWCAD 2009 专业版").Dialog("为文字样式指定字体: STANDARD").WinButton("取消").Click
迭代:
while Window("ZWCAD 2009 专业版").Dialog("为文字样式指定字体: *")
WinButton("取消").Click
wond。。。。。。。。。
还是要设置变量,赋值给变量???
请大侠们指教啊 你的代码两个问题,第一个问题是你没有判断那个取消按钮是否出现,只有在按钮出现后我们才应该执行点击操作,不然就容易造成脚本因为延迟找不到对象而失败;第二个问题你没有设置脚本循环的中止条件,也就是说,在什么情况下脚本不再持续点击取消按钮。
我这句话哪里错了?为什么总提示无效的参数个数或参数值??
Dim ii=0
While (i=Window("ZWCAD 2009 专业版").Dialog("nativeclass:=#32770").WinButton("text:=取消").GetTOProperties ())
Window("ZWCAD 2009 专业版").Dialog("nativeclass:=#32770").WinButton("取消").Click
wend 可以判断dialog是否存在
用exist来判断就行了.
我的这句话哪里错了?为什么说识别不到wincombobox控件?
Window("regexpwndclass:=ZWCADApplicationWindow ").Dialog("nativeclass:=#32770","text:=图形另存为").WinComboBox("nativeclass:=Combobox","attached text:=保存类型(&T):").Select "AutoCAD 2007 Drawing (dwg)" 原帖由 gily19821116 于 2009-6-2 12:51 发表 http://bbs.51testing.com/images/common/back.gifDim i
i=0
While (i=Window("ZWCAD 2009 专业版").Dialog("nativeclass:=#32770").WinButton("text:=取消").GetTOProperties ())
Window("ZWCAD 2009 专业版").Dialog("nativeclass:=#32770").WinButton("取消" ...
GetTOProperties 方法没有跟属性名作为参数. if Window("ZWCAD 2009 专业版").Dialog("为文字样式指定字体: *") exist Then
Window("ZWCAD 2009 专业版").Dialog("为文字样式指定字体: *").WinButton("取消").Click
end if
不知道这样可不可以。
[ 本帖最后由 saryzhang 于 2009-6-2 17:47 编辑 ] 在可以预见提示框出现的时机的时候,楼主可以参考12楼的方法。
如果随即出现的提示框,楼主是否可以考虑场景恢复…… 已知异常类型,而不确定异常出现的时间和次数,很明显用场景恢复最方便咯
怎么在set处设置参数化?如何导入xls文件里面的数据?
Window("regexpwndclass:=ZWCADApplicationWindow").Dialog("text:=打开图","window id:=0").WinEdit("nativeclass:=Edit","window id:=1148").Set "f:\测试文件下载\dwg2\12-pm22.dwg"set这个地方想要参数化,改怎么办?不能从keview里面参数化了。如何定义,可以把xls文件之类的文本文件导入? 定义一个数组,把要进行参数化的值先存在数组里,然后写一个for循环就可以了.
用xls参数化,为什么总提示没有找到sheet1?
DataStr= Environment("TestDir")&"\data.xls"DataTable.AddSheet("TestData")
datatable.ImportSheet DataStr,"Sheet1","TestData"
此句中
datatable.ImportSheet DataStr,"Sheet1","TestData"
在dubug里面提示:The DataTable.ImportSheet operation failed. The specified sheet does not exist
用run运行,提示:A general error occurred while importing sheet TestData from file E:\qtptest\复件 saveas\data.xls to sheet Sheet1.
Line (5): "datatable.ImportSheet DataStr,"Sheet1","TestData"".
我的xls表格设计http://bbs.51testing.com/post.php?action=reply&fid=69&tid=151053&extra=
D:\我的文档\My Pictures\看看.gif
[ 本帖最后由 gily19821116 于 2009-6-4 11:46 编辑 ]
如何添加图片?
我在图片链接里面输入地址c:\我的文档\mypictures\*.gif >提交,不能显示图片 原帖由 gily19821116 于 2009-6-4 11:26 发表 http://bbs.51testing.com/images/common/back.gifDataStr= Environment("TestDir")&"\data.xls"
DataTable.AddSheet("TestData")
datatable.ImportSheet DataStr,"Sheet1","TestData"
此句中
datatable.ImportSheet DataStr,"Sheet1","TestData"
在dubug里面提 ...
DEBUG信息里提示了,找不到指定的工作表名称,你看看excel里有没有"Sheet1"这个工作表吧.
我有sheet1
我有sheet1,但是我不会在51testing上传图片,所以你看不见.怎么上传图片啊?
页:
[1]