Chrome 122如何允许不安全内容?解决不安全下载被拦截问题
Chrome 122版本Selenium文件下载问题解决方案及版本变更说明
Chrome 121到122版本的关键变更
Chrome 122版本强化了跨源资源访问的安全校验,核心变更涉及两点:
--disable-web-security参数生效条件收紧:单独使用该参数不再生效,必须配合--user-data-dir指定一个空的用户数据目录,否则浏览器会直接忽略安全禁用指令。- 跨站文档阻塞机制升级:新增
CrossSiteDocumentBlockingAlways等安全特性,进一步限制不安全源的文件下载行为,即使添加--allow-running-insecure-content也无法完全绕过校验。
需补充的启动参数及调整方案
针对上述变更,你需要在原有参数基础上添加以下配置:
--user-data-dir=/path/to/empty/dir:指定本地一个空目录作为独立用户配置目录,确保--disable-web-security正常生效--unsafely-treat-insecure-origin-as-secure=http://your-download-domain.com:将你进行文件下载的目标域名标记为安全源,替换为实际的下载站点地址--disable-features=CrossSiteDocumentBlockingIfIsolating,CrossSiteDocumentBlockingAlways:关闭新增的跨站文档阻塞特性,解除下载限制
调整后的完整代码示例
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() # 安全策略相关参数 options.add_argument("--disable-web-security") options.add_argument("--user-data-dir=C:/temp/chrome_test_profile") # 替换为本地空目录路径 options.add_argument("--allow-running-insecure-content") options.add_argument("--unsafely-treat-insecure-origin-as-secure=http://your-download-site.com") # 替换实际下载域名 # 关闭跨站阻塞特性 options.add_argument("--disable-features=CrossSiteDocumentBlockingIfIsolating,CrossSiteDocumentBlockingAlways") # 可选:配置自动下载(避免弹窗) download_prefs = { "download.default_directory": "C:/your/local/download/path", "download.prompt_for_download": False, "download.directory_upgrade": True, "safebrowsing.enabled": False } options.add_experimental_option("prefs", download_prefs) driver = webdriver.Chrome(options=options)
额外注意事项
- 确保
--user-data-dir指定的目录是空的,若已存在Chrome配置文件,可能导致参数不生效 --unsafely-treat-insecure-origin-as-secure支持多个域名,用逗号分隔即可(如http://domain1.com,http://domain2.com)- 若仍存在下载警告,可尝试添加
--disable-site-isolation-trials参数,进一步降低安全隔离限制
内容的提问来源于stack exchange,提问作者sashkins
相关产品推荐
相关产品推荐

