如何用Selenium VBA设置Edge浏览器文件下载自定义路径
在VBA中使用Selenium Edge设置自定义下载路径
要实现自定义下载路径,你需要通过Edge的Chromium配置项指定下载目录,以下是具体实现方案:
核心配置逻辑
Edge基于Chromium内核,兼容Chrome的配置参数,我们需要创建配置对象并设置下载相关偏好:
- 指定自定义下载路径
- 禁用下载弹窗
- 自动确认下载操作
修改后的完整代码
Dim c As Selenium.WebDriver Dim edgeOptions As Selenium.ChromeOptions Set edgeOptions = New Selenium.ChromeOptions ' 配置下载偏好参数 With edgeOptions ' 自定义下载路径(VBA中反斜杠需写两个,或改用正斜杠) .AddArgument "--download.default_directory=C:\\Users\\folder" ' 禁用下载弹窗 .AddArgument "--profile.default_content_settings.popups=0" ' 自动确认下载,不弹出询问框 .AddArgument "--download.prompt_for_download=false" End With Set c = New Selenium.WebDriver ' 用配置好的参数启动Edge c.Start "edge", edgeOptions c.Get "https://......" ' 公司内部网站地址 c.Window.Maximize c.ExecuteScript ("window.scrollTo(0, document.body.scrollHeight);") c.Wait (3000) c.FindElementByXPath("//*[@id='ctl00_ctl40_g_01b3ceb6_dac0_4ca9_a746_e3189ac6706d_ctl00_spgvInvoiceList_ctl03_imageButtonShowPDF']").Click ' 点击下载按钮 ' 可选:根据文件大小调整等待时间,确保下载完成 c.Wait (5000) c.Quit Set c = Nothing Set edgeOptions = Nothing End Sub
额外注意事项
- 路径有效性:确保指定的
C:\\Users\\folder路径已存在,若不存在可提前用VBA创建:Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FolderExists("C:\Users\folder") Then fso.CreateFolder "C:\Users\folder" End If Set fso = Nothing - 版本兼容:确保使用的Selenium VBA绑定支持Chromium Edge(建议安装最新版SeleniumBasic)
- 文件类型适配:上述配置对.xls文件完全适用,无需额外调整文件类型参数
内容的提问来源于stack exchange,提问作者Shreya
相关产品推荐
相关产品推荐

