You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell如何点击href为javascript:;的链接下载JS生成的压缩包

解决方案

方案1:使用Selenium模拟浏览器操作(推荐,适配JS渲染页面)

该方案可以直接复用你已有的登录逻辑,同时解决元素定位、下载弹窗两个问题。

  • 元素定位:通过按钮的data-ng-click属性和文本特征组合匹配,不需要专属ID或Tag
  • 下载弹窗处理:提前配置浏览器默认下载路径,禁用保存提示,文件会自动存入指定目录

代码示例

# 提前安装Selenium PowerShell模块,执行命令:Install-Module Selenium -Scope CurrentUser
Import-Module Selenium

# 配置Chrome浏览器选项
$chromeOptions = New-Object OpenQA.Selenium.Chrome.ChromeOptions
# 替换为你要保存文件的本地路径
$savePath = "C:\PostFileDownload"
$chromeOptions.AddUserProfilePreference("download.default_directory", $savePath)
# 禁用下载确认弹窗
$chromeOptions.AddUserProfilePreference("download.prompt_for_download", $false)
$chromeOptions.AddUserProfilePreference("safebrowsing.enabled", $true)

# 启动浏览器
$driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($chromeOptions)

# 此处复用你已实现的登录逻辑,登录目标页面即可
# ----- 你的登录代码 start -----
# $driver.Url = "目标页面地址"
# .....
# ----- 你的登录代码 end -----

# 等待下载按钮渲染完成,避免页面未加载导致定位失败
$wait = New-Object OpenQA.Selenium.Support.UI.WebDriverWait($driver, [TimeSpan]::FromSeconds(10))
$downloadButton = $wait.Until({
    # 通过属性和文本组合定位按钮
    $driver.FindElementByXPath("//a[@data-ng-click='checkForFileAndDownload(getVersionForCurrentLanguage(file.versions))' and starts-with(normalize-space(text()),'post_adressdaten')]")
})

# 触发点击下载
$downloadButton.Click()

# 等待下载完成,可根据文件大小调整等待时长,或添加判断文件是否存在的逻辑
Start-Sleep -Seconds 20

# 关闭浏览器进程
$driver.Quit()

方案2:抓包获取下载直链,直接调用接口下载

JS触发下载本质是向后端发送请求获取文件,你可以通过抓包拿到直链后直接用PowerShell内置方法下载,不需要依赖浏览器。
操作步骤:

  1. 打开浏览器F12开发者工具,切换到「网络」面板,勾选「保留日志」选项
  2. 手动点击下载按钮,在网络请求列表中筛选返回类型为application/zip的请求
  3. 复制该请求的URL、请求头、参数,以及登录后的会话Cookie
  4. 用Invoke-WebRequest直接请求该接口保存文件

代码示例

# 替换为你抓包得到的对应参数
$downloadApiUrl = "抓包获取的下载接口地址"
$requestHeaders = @{
    # 抓包得到的请求头信息,如Authorization、Referer等
}
# 如果你用Invoke-WebRequest登录过,可以直接复用当时的-WebSession变量
$loginSession = $你登录时保存的会话变量
$outputFilePath = "C:\PostFileDownload\post_adressdaten.zip"

Invoke-WebRequest -Uri $downloadApiUrl -Headers $requestHeaders -WebSession $loginSession -OutFile $outputFilePath

内容的提问来源于stack exchange,提问作者Francesco Mantovani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:42:01