Selenium Headless Chrome无头模式下语言设置失效如何解决
Selenium Chrome无头模式语言设置失效解决方案
问题原因
Chrome无头模式默认不加载通过add_experimental_option配置的偏好(prefs)参数,仅设置intl.accept_languages不会被无头模式识别,因此会返回系统默认语言的结果。
解决方法
- 保留原有prefs配置兼容有头模式,额外添加
--lang启动参数指定浏览器语言,双重配置可覆盖不同Chrome版本的兼容场景 - 注意启动参数的语言代码使用中划线分隔(如
en-US),和prefs配置中的下划线格式做区分
完整可用代码示例
from selenium import webdriver options = webdriver.ChromeOptions() # 启用无头模式,新版Chrome推荐使用--headless=new使用和有头模式一致的内核,旧版可直接写--headless options.add_argument("--headless=new") # 启动参数指定语言,无头模式下该配置生效 options.add_argument("--lang=en-US") # 原有prefs配置保留,兼容有头模式运行场景 options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'}) driver = webdriver.Chrome(options=options)
额外排查点
如果配置后仍未生效,先确认Chrome浏览器和ChromeDriver的大版本号完全匹配,版本差异也可能导致启动参数不被识别。
内容的提问来源于stack exchange,提问作者Pascal Schott
相关产品推荐
相关产品推荐

