51Testing软件测试论坛

标题: 这样的步骤该如何设置延迟? [打印本页]

作者: 02256905    时间: 2009-5-14 23:30
标题: 这样的步骤该如何设置延迟?
鼠标点击一个下拉菜单框,选择一个类型就完成操作,语句是这样的:
Window("C:\Documents and Settings\Admi").Dialog("PM 设置").WinComboBox("文件类型:").Select "杂志(文本与图片)"现在就是想在Select "杂志(文本与图片)"前面加一个延迟,因为"杂志(文本与图片)"这个选项是在下拉菜单中的,如果速度快了,可能回放失败,所以想在弹出下拉菜单时等2S,该怎么改语句啊?我试这把这个操作分成2步也没办法,高手指点一下(在上一步加延迟没用啊)
作者: angek    时间: 2009-5-15 11:41
暂时也没有想到更好的办法
如果实在不行就在option里面把运行速度改为按录制时的速度,录制时选择慢点看看
作者: 02256905    时间: 2009-5-15 13:30
哦,非常感谢
作者: kam    时间: 2009-5-17 07:35
用waitprotery
作者: 02256905    时间: 2009-5-17 20:20
一个步骤里有2个动作,我想在这2个动作之间加延迟,但是waitprotery和WAIT似乎都是用在2个步骤之间的,可能我理解的不对,waitprotery怎么用到一个步骤里呢?Window("C:\Documents and Settings\Admi").Dialog("PM 设置").WinComboBox("文件类型:").“如何延迟?”Select "杂志(文本与图片)"
作者: fei.ge    时间: 2009-5-18 10:17
能问一下,你这样做的目的是什么么?
是因为下拉框的选项比较多,点击下拉框后,需要一定的时间来加载么?
作者: fei.ge    时间: 2009-5-18 10:19
如果是这样的话:是不考虑下,如果下拉框的内容全部加载完,WinComboBox("文件类型:")对象的属性有没有变化呢?

如果有变化,那么我们是不是可以用waitProtery的方法来做呢?

just try~
作者: 02256905    时间: 2009-5-22 17:54
对啊!是因为下拉框的选项比较多,点击下拉框后,需要一定的时间来加载。不加延迟,有时候回放就会选 不到正确的选项。
其实这个操作很简单,就是把一个文件存储时,选择存储目的地。如:C盘D盘E盘等,就是那个下拉菜单。但是当所有内容全部加载完,对象属性没什么变化啊。
qtp录制时,如果只点击那个下拉菜单一下,没有脚本生成,只有选择下拉菜单中一项时,才会生成一行代码。我想在这一步中如何设置延迟,就是在Select "杂志(文本与图片)"前面。
作者: intothestorm    时间: 2009-5-22 18:28
标题: 思路,没验证。
RegisterUserFunc "WinComboBox", "waitwait", "waitwaitwait"
Public Function waitwaitwait(testObj, timeout)
  wait(timeout)
  Set waitwaitwait = testObj
End Function

语法:
Window("C:\Documents and Settings\Admi").Dialog("PM 设置").WinComboBox("文件类型:").waitwait(2).Select "杂志(文本与图片)"现在就是想在Select "杂志(文本与图片)"
作者: intothestorm    时间: 2009-5-22 18:32
如果可以记得给我发个消息
作者: nbkhic    时间: 2009-5-22 19:26
用VBS的sleep函数吧。
作者: nefax    时间: 2009-5-22 23:08
点击没有生成脚本可以直接加一句CLICK啊
然后再select
Window("C:\Documents and Settings\Admi").Dialog("PM 设置").WinComboBox("文件类型:").Click
Window("C:\Documents and Settings\Admi").Dialog("PM 设置").WinComboBox("文件类型:").select "杂志"

还有搞不懂为什么你说“不加延迟,有时候回放就会选 不到正确的选项” 你item都确定了 难道报找不到对象?
作者: 02256905    时间: 2009-5-23 20:37
标题: 回复 10# 的帖子
非常感谢你啊!!!
你的方法是可行的,确实达到延迟的效果了,如果有分的话我就全送给你了。
我的水平还比较菜,还得要再好好研究一下你写得脚本,好羡慕像你这样的高手
作者: 02256905    时间: 2009-5-23 20:56
标题: 回复 12# 的帖子
你说的这种方法我开始时就试过了,执行Click会打开下拉菜单选项,但是执行下一行脚本时,它不是再Click打开的下拉菜单选项基础上选择目标,而是重新点击打开下拉菜单选项在选择,所以这样是不可行的。这个动作是:点击("文件类型:")就直接在下拉菜单选项中点击选择保存位置,虽然这个过程点了2下鼠标,但关键是QTP在只记录了第2个点击动作。(LOW LEVEL录制也是一样的)我想再在第一次点击("文件类型:")时稍微停一下,等下拉菜单选项完全加载完,在选择。
鉴于本人机子配置不争气,程序下拉菜单很长,回放时有时有些卡,所以不加延迟有时选不到正确的选项。比如我选的是e盘,它可能是第10个选项,回放时卡一下的话有可能就选到第一个C盘上了,就这样。
还是感谢你的回复
作者: fei.ge    时间: 2009-5-25 16:48
原帖由 intothestorm 于 2009-5-22 18:28 发表
RegisterUserFunc "WinComboBox", "waitwait", "waitwaitwait"
Public Function waitwaitwait(testObj, timeout)
  wait(timeout)
  Set waitwaitwait = testObj
End Function

语法:
Window("C:\Documents  ...


这是方法的重载...?
这种方法跟在
Window("C:\Documents and Settings\Admi").Dialog("PM 设置").WinComboBox("文件类型:").select "杂志"
的前面加wait(XXX)时间有什么区别呢?

[ 本帖最后由 fei.ge 于 2009-5-25 16:49 编辑 ]
作者: onlonely    时间: 2009-5-29 22:08
首先理解select这个操作如何完成的,
Window("C:\Documents and Settings\Admi").Dialog("PM 设置").WinComboBox("文件类型:").Select "杂志(文本与图片)"
select其实就是一种赋值方式,和set没有太本质的区别,
唯一区别就是,可能需要等待这个列表中的内容加载完成.赋值才能有效进行.
所以你如果在这个操作前,给于一定等待时间,就可以了.
如:
wait 2
Window("C:\Documents and Settings\Admi").Dialog("PM 设置").WinComboBox("文件类型:").Select "杂志(文本与图片)"




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2