启用Headless=True时Undetected Chrome无法连接问题求助
解决Headless模式下Chrome无法连接的问题
针对你遇到的headless=True时Chrome无法连接的错误,结合你的环境(Chrome 117、undetected-chromedriver 3.5.3、Selenium 4.13.0、Win10 64位),可以尝试以下几种解决方案:
1. 显式指定Chrome二进制文件路径
Headless模式下,驱动可能无法自动定位Chrome安装路径,需手动指定:
from undetected_chromedriver import Chrome, ChromeOptions options = ChromeOptions() options.headless = True # 替换为你的Chrome实际安装路径,默认路径示例如下 options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe" driver = Chrome(options=options)
2. 添加Headless模式必备启动参数
使用Chrome 112+支持的新Headless模式,并补充必要参数提升稳定性:
options = ChromeOptions() # 启用新的Headless模式(替代旧的--headless参数) options.add_argument("--headless=new") options.add_argument("--window-size=1920,1080") # 固定窗口大小,避免渲染异常 options.add_argument("--disable-gpu") options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") driver = Chrome(options=options)
3. 确保正确使用undetected-chromedriver的初始化方式
不要混用Selenium原生webdriver.Chrome,直接使用undetected-chromedriver封装的Chrome类实例化驱动,它会自动处理chromedriver的路径和规避检测逻辑。
4. 禁用Chrome自动更新
若Chrome后台自动更新,可能导致版本与chromedriver不匹配(即使当前版本一致),可通过以下方式禁用:
- 右键Chrome快捷方式 → 属性 → 目标栏末尾添加
--disable-auto-update(注意前面有空格) - 企业环境可通过组策略配置禁用更新
5. 排查防火墙/杀毒软件拦截
Windows Defender或第三方杀毒软件可能拦截Headless模式下的Chrome进程,暂时关闭防护软件测试,若恢复正常,将Chrome和chromedriver添加至信任列表。
内容的提问来源于stack exchange,提问作者Tamir Einy
相关产品推荐
相关产品推荐

