如何使用 VB 脚本处理 IE 下载对话框?

发布于 2024-11-03 20:20:04 字数 115 浏览 7 评论 0原文

如何使用VB脚本自动保存文件到特定位置?

或者如何在不交互的情况下将文件下载到 IE 中的特定位置 带下载对话框?

最终我需要自动从 IE 保存文件到特定位置。

谢谢。

how to save file automatically in particular location using VB Script ?

or How is it possible to Download file to particular location in IE without interacting
with Download dialog ?

Ultimately I need to save file in particular location from IE automatically.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

手长情犹 2024-11-10 20:20:04

我们通过 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

What we do for file dialogs with our selenium tests is to leverage AutoIt, a free scripting tool that creates executables that interact with the windows component object model--including file save dialogs.

What I would do is make a simple script that saves the file in your desired location, compile to an executable, and then in VBScript call that program.

Here is a script we use for downloading excel files, although it may be a bit more complicated than what you need.

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
陌路黄昏 2024-11-10 20:20:04

在 Internet Explorer 中强制下载文件是极其糟糕的做法。这也是一个安全风险。这就是为什么没有本地方法可以做到这一点。你能提供一个需要这个的充分理由吗?否则,我不会因为我刚才所说的原因提供解决方案。

Forcing a file download in Internet Explorer is extremely bad practice. It's also a security risk. That's why there are no native methods for doing this. Can you provide a good reason for needing this? Otherwise, I'm not going to provide a solution for the reasons I've just stated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文