Chromedriver超时求助:原正常Selenium/Python脚本现无法连接渲染器
解决思路与方案
看起来你遇到了挺棘手的问题——原本跑的好好的Selenium脚本放了一个月就连不上Chrome渲染器了,试了不少办法都没用。结合你的环境和报错信息,我整理了几个针对性的排查方向,你可以逐一试试:
1. 调整Chrome启动参数,排除冲突
你的现有参数里可能有些干扰项,也缺了几个常用的兼容性参数,建议改成这样试试:
from selenium.webdriver.chrome.options import Options from selenium import webdriver options = Options() # 用原始字符串避免转义问题 options.binary_location = r'C:\Program Files\Google\Chrome\Application\googlechrome.exe' # 添加关键兼容参数 options.add_argument('--no-sandbox') # 禁用沙箱,避免Windows下的权限限制 options.add_argument('--disable-dev-shm-usage') # 解决内存不足相关的启动问题 options.add_argument('--remote-debugging-port=9222') # 指定固定调试端口,避免端口分配失败 options.add_argument('--start-maximized') # 规避Chrome的自动化检测,有时候会影响连接 options.add_experimental_option('excludeSwitches', ['enable-automation']) options.add_experimental_option('useAutomationExtension', False) chrome_driver_binary = r"C:\Program Files\Chromedriver\chromedriver.exe" # 日志路径用f-string更清晰,同样注意转义 driver = webdriver.Chrome( chrome_driver_binary, options=options, service_args=[ "--disable-gpu", "--readable-timestamp", f"--log-path=C://DOCS//python//{className}_{memberName}_TEST_chromedriver.log" ] )
小提醒:路径字符串一定要加
r前缀(原始字符串),不然Windows的反斜杠容易被当成转义字符,引发隐性问题。
2. 清理残留进程,排查端口占用
有时候停用期间,Chrome或者Chromedriver的后台进程没彻底关掉,占着端口导致新的连接失败:
- 打开任务管理器,找到所有
chrome.exe和chromedriver.exe进程,全部结束掉,再重新跑脚本。 - 要是指定了调试端口(比如上面的9222),可以用命令行检查端口是否被占用:
netstat -ano | findstr :9222
如果有结果,记下PID,在任务管理器里找到对应进程结束就行。
3. 手动指定用户数据目录,解决权限问题
Chromedriver自动生成的临时用户数据目录(就是日志里的scoped_dirxxx)可能因为系统Temp文件夹权限不足,导致Chrome初始化失败:
- 自己建一个有完全控制权限的目录,比如
C:\Users\VB\Documents\ChromeTestProfile,然后在参数里指定:
options.add_argument(r'--user-data-dir=C:\Users\VB\Documents\ChromeTestProfile')
第一次运行会生成新的Chrome配置,后续可以一直用这个目录,避免临时目录的权限坑。
4. 排查杀毒软件/防火墙的干扰
停用期间可能装了新的杀毒软件,或者Windows更新改了防火墙规则,挡住了Chromedriver和Chrome的通信:
- 先临时关掉杀毒软件和系统防火墙,跑脚本试试能不能正常启动。
- 如果能行,就把
chromedriver.exe和chrome.exe添加到杀毒软件的信任列表,同时在防火墙里允许它们的网络请求。
5. 再次验证版本兼容性,更新Selenium
虽然你退回了Chrome86,但还是再确认下细节:
- Chrome版本
86.0.4240.75对应的Chromedriver确实是86.0.4240.22,这个匹配是对的,但可以重新下载一遍Chromedriver,确保文件没损坏。 - 试试把Selenium升级到3.x分支的最新版(比如3.141.59),有时候旧版Selenium和新一点的Chrome会有隐性兼容问题:
pip install selenium==3.141.59
6. 检查系统环境的隐性变更
停用期间可能的Windows更新、Python环境变更(比如虚拟环境失效)也可能导致问题:
- 确认你的Python虚拟环境是激活状态,依赖包都没丢,可以用
pip list检查Selenium版本是否正确。 - 要是之前用的是全局Python环境,试试重新安装一遍Selenium依赖。
内容的提问来源于stack exchange,提问作者catnap
相关产品推荐
相关产品推荐

