如何使用VB Script在特定位置自动保存文件?如何使用VB脚本处理IE下载对话框?
或者如何将文件下载到IE中的特定位置而不需要与下载对话框交互 ?
最终我需要从IE自动保存特定位置的文件。
谢谢。
如何使用VB Script在特定位置自动保存文件?如何使用VB脚本处理IE下载对话框?
或者如何将文件下载到IE中的特定位置而不需要与下载对话框交互 ?
最终我需要从IE自动保存特定位置的文件。
谢谢。
强制在Internet Explorer中下载文件是非常糟糕的做法。这也是一个安全风险。这就是为什么没有本地方法来做到这一点。你能提供一个很好的理由来解决这个问题吗?否则,我不会为我刚才陈述的原因提供解决方案。
这是用于我们的内部测试/自动化。我们尝试使用AutoIt进行自动化,它在我们点击下载等时起作用,但是当它们连接到RDP时,如果我们正在关闭RDP,则脚本会挂起。 – SmartSolution 2011-05-06 06:07:02
答案不是解决方案,而是评论。对于@Zugwalt的第一个解决方案,使用注册表中的Windows自动登录有一个很好的RDP问题解决方法:http://serverfault.com/questions/269832/windows-server-2008-automatic-user-logon-on -power-on/606130#606130 – 2014-07-22 15:17:57
可悲的是我的回答被删除了...无论如何,一个简单的解决方案是在Internet Explorer **中使用一个好的**下载管理器插件。 我尝试了很多种类,但大多数都没有**,没有用户交互**,所以不适合自动化任务。 这里有一个免费软件做的工作: http://www.majorgeeks.com/files/details/dlexpert.html 如果您遇到HTTPS,或其他验证错误下载文件的问题,试试这个免费软件来代替: http://www.orbitdownloader.com/download.htm – 2014-07-23 14:20:44
我们通过硒测试为文件对话做的工作就是利用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
谢谢@zugwalt但是,当RDP关闭时,AutoIt不工作。这就是我们寻找替代解决方案的原因。或者如果你可以建议让这个脚本在锁定的RDP上工作。或者有些工作? – SmartSolution 2011-05-06 06:06:20
AutoIt将需要使用浏览器在实际机器上运行,而不是通过网络运行。 – Zugwalt 2011-05-06 15:08:57
你考虑过AutoIT吗? – 9ikhan 2011-04-29 03:51:02
是的,我们尝试过使用AutoIT,它在RDP打开的情况下起作用。但是当我们关闭RDP时,AutoIT脚本会挂起。 – SmartSolution 2011-05-06 06:08:30