02256905 发表于 2009-5-14 23:30:00

这样的步骤该如何设置延迟?

鼠标点击一个下拉菜单框,选择一个类型就完成操作,语句是这样的:
Window("C:\Documents and Settings\Admi").Dialog("PM 设置").WinComboBox("文件类型:").Select "杂志(文本与图片)"现在就是想在Select "杂志(文本与图片)"前面加一个延迟,因为"杂志(文本与图片)"这个选项是在下拉菜单中的,如果速度快了,可能回放失败,所以想在弹出下拉菜单时等2S,该怎么改语句啊?我试这把这个操作分成2步也没办法,高手指点一下(在上一步加延迟没用啊)

angek 发表于 2009-5-15 11:41:43

暂时也没有想到更好的办法
如果实在不行就在option里面把运行速度改为按录制时的速度,录制时选择慢点看看

02256905 发表于 2009-5-15 13:30:24

哦,非常感谢

kam 发表于 2009-5-17 07:35:06

用waitprotery

02256905 发表于 2009-5-17 20:20:30

一个步骤里有2个动作,我想在这2个动作之间加延迟,但是waitprotery和WAIT似乎都是用在2个步骤之间的,可能我理解的不对,waitprotery怎么用到一个步骤里呢?Window("C:\Documents and Settings\Admi").Dialog("PM 设置").WinComboBox("文件类型:").“如何延迟?”Select "杂志(文本与图片)"

fei.ge 发表于 2009-5-18 10:17:24

能问一下,你这样做的目的是什么么?
是因为下拉框的选项比较多,点击下拉框后,需要一定的时间来加载么?

fei.ge 发表于 2009-5-18 10:19:23

如果是这样的话:是不考虑下,如果下拉框的内容全部加载完,WinComboBox("文件类型:")对象的属性有没有变化呢?

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

just try~

02256905 发表于 2009-5-22 17:54:31

对啊!是因为下拉框的选项比较多,点击下拉框后,需要一定的时间来加载。不加延迟,有时候回放就会选 不到正确的选项。
其实这个操作很简单,就是把一个文件存储时,选择存储目的地。如:C盘D盘E盘等,就是那个下拉菜单。但是当所有内容全部加载完,对象属性没什么变化啊。
qtp录制时,如果只点击那个下拉菜单一下,没有脚本生成,只有选择下拉菜单中一项时,才会生成一行代码。我想在这一步中如何设置延迟,就是在Select "杂志(文本与图片)"前面。

intothestorm 发表于 2009-5-22 18:28:27

思路,没验证。

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:33

如果可以记得给我发个消息:handshake

nbkhic 发表于 2009-5-22 19:26:17

用VBS的sleep函数吧。

nefax 发表于 2009-5-22 23:08:24

点击没有生成脚本可以直接加一句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:38

回复 10# 的帖子

非常感谢你啊!!!
你的方法是可行的,确实达到延迟的效果了,如果有分的话我就全送给你了。
我的水平还比较菜,还得要再好好研究一下你写得脚本,好羡慕像你这样的高手:lol

02256905 发表于 2009-5-23 20:56:04

回复 12# 的帖子

你说的这种方法我开始时就试过了,执行Click会打开下拉菜单选项,但是执行下一行脚本时,它不是再Click打开的下拉菜单选项基础上选择目标,而是重新点击打开下拉菜单选项在选择,所以这样是不可行的。这个动作是:点击("文件类型:")就直接在下拉菜单选项中点击选择保存位置,虽然这个过程点了2下鼠标,但关键是QTP在只记录了第2个点击动作。(LOW LEVEL录制也是一样的)我想再在第一次点击("文件类型:")时稍微停一下,等下拉菜单选项完全加载完,在选择。
鉴于本人机子配置不争气,程序下拉菜单很长,回放时有时有些卡,所以不加延迟有时选不到正确的选项。比如我选的是e盘,它可能是第10个选项,回放时卡一下的话有可能就选到第一个C盘上了,就这样。
还是感谢你的回复:handshake

fei.ge 发表于 2009-5-25 16:48:26

原帖由 intothestorm 于 2009-5-22 18:28 发表 http://bbs.51testing.com/images/common/back.gif
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:46

首先理解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 "杂志(文本与图片)"
页: [1]
查看完整版本: 这样的步骤该如何设置延迟?