Selenium 4.14搭配ChromeDriver无法设置默认下载目录求助
Selenium 4.14搭配ChromeDriver无法设置默认下载目录求助
各位大佬求助!我最近碰到个棘手的问题——没法给ChromeDriver设置默认下载目录。之前用本地WebDriver的时候一切正常,自从换成Selenium自带的Driver Manager之后,设置就完全失效了,下载的文件还是乖乖跑到系统默认的Downloads文件夹里。
我写的代码是这样的:
def setup_method(self): time.sleep(1) options = Options() prefs = {'download.default_directory': r"C:\Test", 'download.prompt_for_download': True, 'download.directory_upgrade': True, 'safebrowsing.enabled': True } options.add_experimental_option("detach", True) options.add_experimental_option("prefs", prefs) options.add_argument('--disable-extensions') options.add_argument('--disable-dev-shm-usage') self.browser = webdriver.Chrome(options=options)
明明配置了download.default_directory指向C:\Test,但下载行为完全不受影响,有没有懂行的朋友帮我看看哪里漏掉了?
后来找到了解决方案,问题主要出在几个细节配置上,调整后就能正常生效了:
- 首先,把
download.prompt_for_download从True改成False:如果设置为True,Chrome会弹出下载确认框,这时候默认目录的设置可能会被忽略,直接用系统默认路径 - Windows系统的路径格式可以调整一下:虽然用原始字符串
r"C:\Test"没问题,但换成正斜杠"C:/Test"或者双反斜杠"C:\\Test"有时候能避免潜在的转义问题 - 添加
--safebrowsing-disable-download-protection参数:Chrome的安全浏览保护可能会拦截自定义下载目录的设置,加上这个参数可以解除限制 - 确保Chrome浏览器和Driver Manager自动匹配的ChromeDriver版本完全一致:版本不兼容也可能导致偏好设置不生效
修改后的代码参考如下:
def setup_method(self): time.sleep(1) options = Options() prefs = { 'download.default_directory': "C:/Test", 'download.prompt_for_download': False, 'download.directory_upgrade': True, 'safebrowsing.enabled': True } options.add_experimental_option("detach", True) options.add_experimental_option("prefs", prefs) options.add_argument('--disable-extensions') options.add_argument('--disable-dev-shm-usage') options.add_argument('--safebrowsing-disable-download-protection') self.browser = webdriver.Chrome(options=options)
你可以按照上面的调整试试,应该就能让下载文件乖乖跑到指定目录啦!
备注:内容来源于stack exchange,提问作者FeelDaSqurtle
相关产品推荐
相关产品推荐

