您的位置:首页 > 编程语言 > Qt开发

QTP 通过URL地址下载文件到本地

2012-08-23 10:24 447 查看
While automation, you may come to situations where you need to need to download a file on clicking a link. This generally involves a lot of User Interface (GUI)overhead like syncing the download box, clicking the buttons, managing the Save As box, etc. This
many a time causes sync issues. Moreover, we end up automating something that is not at all needed to be automated or tested. In this situation, all you need is a code snippet in Visual Basic for Quick Test Professional that automatically downloads the file
in the background without the need of any GUI appearances. You just need to provide the download link and the file path in your system. The function "funcDownloadFile" below takes the file path and the download link as parameters in String and performs the
download in the background. You just need to capture the download URL from the potential download link and call this function and you will find the download completed at the specified path.

The function supports authenticated downloads and proxy settings. The function is based onADODB STREAM object and WinHTTP
API from Microsoft.

Sub utilDownloadFile(strFilePath, strURL)

Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")

'WinHttpReq.SetProxy HTTPREQUEST_PROXYSETTING_PROXY, "xxx.xxx.xxx.xxx:zzzz"
'Required only if your internet routes through a proxy. Not required in 90% cases.
'You can ignore this line for first attempt but add it if your download is hindered, X is IP and Z is Port

temp = WinHttpReq.Open("POST", strURL, false)

'WinHttpReq.SetCredentials "Username", "Password", HTTPREQUEST_SETCREDENTIALS_FOR_SERVER
'Required only if the file download server required authentication. Not required in 90% cases. Change Username and Password wuth actuals.

WinHttpReq.Send()
WinHttpReq.WaitForResponse

strResult = WinHttpReq.ResponseBody

Set oStream = createobject("Adodb.Stream")
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2

oStream.type = adTypeBinary
oStream.open
oStream.write strResult
oStream.savetofile strFilePath, adSaveCreateOverWrite

End Sub
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: