【问题标题】:Automation: How to get downloaded path of a file that was downloaded from the Web browser自动化:如何获取从 Web 浏览器下载的文件的下载路径
【发布时间】:2020-08-19 16:52:42
【问题描述】:

我正在编写一个自动化脚本,以从使用 Chrome 浏览器打开的链接下载 excel 文件。是否可以选择获取下载位置的完整路径?该脚本将在不同的机器上运行。所以我不想在我的系统中指定默认下载位置并在该路径中查找文件。

我也尝试过使用 Windows CMD,我在 CMD 中输入文件名,搜索整个系统并提取路径。但是进行此搜索大约需要 2 到 3 分钟。有没有更高效的方法,比如使用 JavaScript 来更快地获取下载位置?

以下是我尝试过的 windows 命令(需要 2 到 3 分钟)..

for /f "delims=" %i in ('dir "<FILENAME>" /b/a-d/od/t:c/s') 
DO echo %i > %tmp%\lastfile.txt

【问题讨论】:

  • Windows 和基于 POSIX 的机器(如 Mac、Unix)会有不同的文件路径语法。我的建议是获得系统访问权限并在这些机器的默认工作区中创建所有新文件夹,然后将 excel 文件存储在那里。现在,由于您知道文件夹名称,因此可以轻松访问它们。

标签: javascript powershell google-chrome cmd automation


【解决方案1】:

在 JScript 中也是如此。它将一个网络文件写入标准输出。

Sub HttpGet
    On Error Resume Next
    Set File = CreateObject("Microsoft.XMLHTTP")
    File.Open "GET", Arg(1), False
    File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
    File.Send
    txt=File.ResponseText
    'Putting in line endings
    Outp.write txt
    If err.number <> 0 then 
        Outp.writeline "" 
        Outp.writeline "Error getting file" 
        Outp.writeline "==================" 
        Outp.writeline "" 
        Outp.writeline "Error " & err.number & "(0x" & hex(err.number) & ") " & err.description 
        Outp.writeline "Source " & err.source 
        Outp.writeline "" 
        Outp.writeline "HTTP Error " & File.Status & " " & File.StatusText
        Outp.writeline  File.getAllResponseHeaders
        Outp.writeline LCase(Arg(1))
    End If
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 2012-04-08
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多