使用Selenium时Chromedriver因多文件下载弹窗中断如何绕过
Selenium绕过Chrome多文件下载弹窗方案
你遇到的是Chrome默认的多文件下载权限校验弹窗,可通过提前配置浏览器参数直接禁用,无需额外的弹窗拦截逻辑,具体实现如下:
触发的弹窗样式参考:
方法1:初始化WebDriver时配置首选项(推荐)
通过Chrome的prefs参数提前配置自动下载权限,完全规避弹窗触发:
- Python实现示例:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() prefs = { # 允许所有站点自动下载多个文件,0=询问 1=允许 2=禁止 "profile.default_content_setting_values.automatic_downloads": 1, # 可选配置:指定默认下载路径,避免弹出下载路径选择弹窗 "download.default_directory": "/Users/xxx/Downloads/your_target_path" } chrome_options.add_experimental_option("prefs", prefs) driver = webdriver.Chrome(options=chrome_options)
- Java实现示例:
import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import java.util.HashMap; public class DownloadTest { public static void main(String[] args) { ChromeOptions options = new ChromeOptions(); HashMap<String, Object> prefs = new HashMap<>(); prefs.put("profile.default_content_setting_values.automatic_downloads", 1); prefs.put("download.default_directory", "C:\\Users\\xxx\\Downloads\\your_target_path"); options.setExperimentalOption("prefs", prefs); ChromeDriver driver = new ChromeDriver(options); } }
方法2:复用现有浏览器实例的场景
如果你是通过debug端口复用已经手动打开的Chrome浏览器,可直接在浏览器地址栏输入chrome://settings/content/automaticDownloads,将默认行为修改为允许站点下载多个文件即可,后续操作不会再触发该弹窗。
注意:如果配置后弹窗仍然触发,请核对Chrome浏览器版本和Chromedriver版本是否一致,大版本差超过1的情况下可能导致配置项不生效。
内容的提问来源于stack exchange,提问作者Nicolas Gervais
相关产品推荐
相关产品推荐

