如何使用VB脚本在特定位置自动保存文件?
或如何在不进行交互的情况下将文件下载到IE中的特定位置 使用下载对话框?
最终我需要自动从IE中保存特定位置的文件。
感谢。
答案 0 :(得分:2)
我们使用我们的selenium测试对文件对话框所做的是利用AutoIt,这是一个免费的脚本工具,可以创建与windows组件对象模型交互的可执行文件 - 包括文件保存对话框。
我要做的是制作一个简单的脚本,将文件保存在您想要的位置,编译成可执行文件,然后在VBScript中调用该程序。
这是我们用于下载excel文件的脚本,虽然它可能比您需要的更复杂。
WinWait("File Download", "", 60)
WinActivate("File Download")
IF WinActive("File Download") Then
Sleep (500)
SendKeepActive ("File Download")
Send("!s")
WinWait("Save As")
WinActivate("Save As")
Sleep (500)
SendKeepActive ("Save As")
If $CMDLine[0] > 0 Then
Send($CMDLine[1])
ELSE
Send("C:\Windows\Temp\latestAutotestExport.xls")
ENDIF
Send("!s")
Sleep (500)
If WinActive("Save As") Then
WinActivate("Save As")
Sleep (500)
SendKeepActive ("Save As")
Send("!y")
Sleep (15000)
EndIf
If WinActive("Download complete") Then
WinClose("Download complete")
EndIf
WinClose("Blank Page - Windows Internet Explorer")
Else
WinActivate("Microsoft Office Excel")
IF WinActive("Microsoft Office Excel") Then
Send("y")
EndIf
Sleep(500)
Send("{F12}")
If $CMDLine[0] > 0 Then
Send($CMDLine[1])
ELSE
Send("C:\Windows\Temp\latestAutotestExport.xls")
ENDIF
Send("!s")
Send("y")
Send("!y")
Send("!y")
Sleep(5000)
ProcessClose("EXCEL.EXE")
Sleep(5000)
WinClose("Blank Page - Windows Internet Explorer provided by Yahoo!")
EndIF
答案 1 :(得分:-1)
在Internet Explorer中强制下载文件是非常糟糕的做法。这也是一种安全风险。这就是为什么没有本地方法来做到这一点。你能提供一个很好的理由吗?否则,由于我刚才所说的原因,我不打算提供解决方案。