dog487 发表于 2008-9-1 14:41:17

QTP如何录制下载文件的另存为操作?

QTP录制下载文件,弹出框“打开还是保存?”点击保存按钮,弹出另存为对话框,将该文件保存到本机上。

现在的问题是,另存为的这个对话框脚本没有,录制不下来,不知道怎么解决?

谢谢

xiaonan 发表于 2008-9-2 09:02:58

查看一下另存为对话框上的对象是否能识别,能识别的话,自己手动把代码加上去啊

fan730 发表于 2008-9-2 09:34:19

手动加吧!

dog487 发表于 2008-9-2 14:21:34

回复 2# 的帖子

能识别,但加上去之后还是提示错误(对象找不到)

dog487 发表于 2008-9-2 14:25:18

回复 4# 的帖子

代码如下:
Browser("Browser").Page("工作平台").Frame("ViewNav_3").WebElement("新建文件夹1").FireEvent "oncontextmenu"
Browser("Browser").Page("工作平台").Frame("ViewNav_4").WebElement("导出Excel").Click
Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
Browser("Browser").Dialog("文件下载").Dialog("另存为").WinButton("保存(S)").Click
Browser("Browser").Dialog("文件下载").Dialog("另存为").WinToolbar("ToolbarWindow32").Press "桌面"
Browser("Browser").Dialog("文件下载").Dialog("另存为").WinButton("保存(S)").Click
Dialog("下载完毕").WinButton("关闭").Click

在第四行提示错误,运行不下去了

kitomitt 发表于 2008-9-2 15:07:02

在另存为这一段操作中用录制坐标的方法记录脚本~~

fengmingbao 发表于 2008-9-2 17:16:06

试一下

Browser("Browser_2").Dialog("File Download").WinButton("Save").TypemicLeft
wait(1)
Browser("Browser_2").Dialog("File Download").WinButton("Open").TypemicRight
wait(1)
Browser("Browser_2").Dialog("File Download").TypemicReturn

centurystone 发表于 2008-9-2 18:03:29

应该是个比较典型的问题,你使用QTP的WEB录制网页是没问题的。
但是保存按钮的对象却并不是网页生成的按钮,而是调用Windows的winButton,web录制方式下当然是无法识别了,
建议把保存按钮用虚拟对象的方法试下

陈能技 发表于 2008-9-2 22:17:27

试一下这个:
        Set deviceReplay = CreateObject("Mercury.DeviceReplay")
        deviceReplay.PressKey 56 ' ALT
        deviceReplay.PressKey 33 ' F
        deviceReplay.PressKey 30 ' A
        w_Browser.Dialog("text:=保存网页").Activate
        deviceReplay.SendString(FileName)
        'Msgbox w_Browser.Dialog("text:=保存网页").WinButton("text:=保存(&S)","nativeclass:=Button").Exist(2)
        w_Browser.Dialog("text:=保存网页").Activate
           deviceReplay.KeyDown 56 ' ALT
        deviceReplay.SendString("s")
        deviceReplay.KeyUp 56 ' ALT

dog487 发表于 2008-9-3 10:02:53

回复 9# 的帖子

谢谢各位的回答。
我先一一试下

dog487 发表于 2008-9-3 10:29:27

回复 9# 的帖子

试了一下,不行。
虚拟对象和代码都不对。
等解决,谢谢各位

dog487 发表于 2008-9-3 11:11:27

回复 7# 的帖子

谢谢回答。呵呵
试了您的代码,一直提示语句未结束。
是不是有什么错误?

xjcool 发表于 2008-9-3 11:43:57

Window("记事本").WinEditor("Edit").Type "这是一个测试!!"
Window("记事本").WinMenu("Menu").Select "文件(F);保存(S)        Ctrl+S"
Window("记事本").Dialog("另存为").WinEdit("文件名(N):").SetSelection 0,1
Window("记事本").Dialog("另存为").WinEdit("文件名(N):").Set "1.txt"
Window("记事本").Dialog("另存为").WinButton("保存(S)").Click
Window("记事本").Dialog("另存为").Dialog("另存为").WinButton("是(Y)").Click
Window("记事本").Close

xjcool 发表于 2008-9-3 11:51:03

你的问题脚本问题出在这一步“
Window("记事本").Dialog("另存为").Dialog("另存为").WinButton("是(Y)").Click
你先把弹出的窗口加到对象库里取看下他的属性 你会发现Dialog下面还有个Dialog,那个就是你缺少的对象
:)
希望能帮到你!

xjcool 发表于 2008-9-3 11:53:40

这里特别要感谢xiaonan一直对我的帮助~
谢谢!:)

dog487 发表于 2008-9-3 15:49:12

回复 14# 的帖子

谢谢xjcool.
问题已经解决了。
解决方法如下:
在录制到这个步骤之前,在QTP的automation选中low level recording,录制坐标即可以。
不过这种低级录制的方法有很多弊端。。。

xtha21 发表于 2008-9-11 16:50:10

回复 5# 的帖子

录制坐标确实有点麻烦的
将你的4、5、6三行改成
Dialog("文件下载").Dialog("文件下载").WinButton("保存(S)").Click
Dialog("文件下载").Dialog("另存为").WinToolbar("ToolbarWindow32").Press "桌面"
Dialog("文件下载").Dialog("另存为").WinButton("保存(S)").Click
试试...
我这就是这样的,可以运行成功呵!

saran 发表于 2008-10-23 17:50:32

回复 16# 的帖子

请问,你说的“automation选中low level recording”在哪啊,我怎么没找到。。。。。

爱喝可乐的蚊子 发表于 2008-10-23 21:53:44


这个平常是灰掉的,只有点击了【record】开始录制后,这个low level recording才变成可使用

风雪夜归人 发表于 2009-9-10 13:42:21

其实,可以直接给另存为的filename赋值的~
页: [1]
查看完整版本: QTP如何录制下载文件的另存为操作?