如何隐藏Firefox下载窗口或将其限制在单个桌面?
问题描述
- 使用Python+Selenium在Firefox中下载PDF时,每次下载完成都会弹出一个不属于DOM的浏览器组件窗口(手动可通过
Ctrl+Shift+y打开),已设置多项下载偏好试图禁用,但无效果 - 尝试切换到Chrome上下文发送
Ctrl+Shift+y快捷键关闭窗口,同样无效;且该窗口会出现在所有桌面,影响日常使用
运行环境:
- Ubuntu 22.04(Gnome/Wayland、i3桌面均出现问题)
- Mozilla Firefox 128.0.3
- Python 3.10.12
- Selenium 4.23.1
原设置的偏好代码:
profile.set_preference("browser.download.folderList", 2) profile.set_preference("browser.download.dir", download_dir) profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf") profile.set_preference("pdfjs.disabled", True) # Disable built-in PDF viewer # Suppress download panel notifications profile.set_preference("browser.download.panel.shown", False) profile.set_preference("browser.download.panel.suppress", True)
解决方案
补充几个关键的Firefox偏好设置,可彻底禁用下载完成后的弹窗和独立下载管理器窗口:
profile.set_preference("browser.download.folderList", 2) profile.set_preference("browser.download.dir", download_dir) profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf") profile.set_preference("pdfjs.disabled", True) # 禁用下载面板通知 profile.set_preference("browser.download.panel.shown", False) profile.set_preference("browser.download.panel.suppress", True) # 关键补充:关闭下载完成提示弹窗和独立下载窗口 profile.set_preference("browser.download.manager.showAlertOnComplete", False) profile.set_preference("browser.download.manager.closeWhenDone", True) profile.set_preference("browser.download.manager.useWindow", False) profile.set_preference("browser.download.manager.focusWhenStarting", False)
如果上述设置在Wayland桌面环境下仍无效,可强制Firefox使用X11兼容模式启动,在初始化driver前添加环境变量:
import os os.environ['MOZ_DISABLE_WAYLAND'] = '1'
注:之前的快捷键方法无效,是因为Ctrl+Shift+y是打开下载管理器窗口的快捷键,而非关闭;即便切换上下文发送关闭快捷键(如Ctrl+w),也依赖窗口处于激活状态,远不如通过偏好设置彻底禁用可靠。
内容的提问来源于stack exchange,提问作者PavoDive
相关产品推荐
相关产品推荐

