MacOS下Python Selenium遇DevToolsActivePort文件不存在问题解决
解决Selenium调用Chrome驱动时的间歇性DevToolsActivePort问题
软件版本
- macOS: 13.0.1
- Python: 3.9.6
- Selenium: 4.8.2
- Chrome: 113.0.5672.92
错误信息
Message: unknown error: Chrome failed to start: exited normally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /Applications/Google Chrome.app/Contents/MacOS/Google Chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
驱动初始化代码片段
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager prefs = { "download.default_directory": Download_dir, 'download.prompt_for_download': False, 'directory_upgrade': True, 'safebrowsing.enabled': True, 'profile.default_content_setting_values.automatic_downloads': 1, 'profile.default_content_settings.popups': 0, } options.add_argument("--headless=new") options.add_argument("--window-size=1920,1080") options.add_argument("--disable-extensions") options.add_argument("--user-data-dir=/Users/<username>/Library/Application Support/Google/Chrome/") options.add_argument('--profile-directory=Profile 3') # Profile Folder Name options.binary_location = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' options.add_experimental_option("prefs", prefs) driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
问题情况
- 尝试操作:初始化Selenium的Chrome驱动
- 预期结果:Selenium成功初始化Chrome驱动
- 实际结果:偶尔出现
unknown error: DevToolsActivePort file doesn't exist错误
排查过程
曾尝试添加--no-sandbox、--disable-dev-shm-usage等选项,这类操作会降低安全性且未解决问题;也尝试指定--remote-debugging-port,但未找到合适端口。最终发现手动打开并关闭Chrome可临时恢复,推测问题根源是脚本未正确关闭Chrome实例,导致调试端口不匹配。
解决方案
临时恢复步骤
- 停止运行中的脚本
- 手动打开Chrome浏览器
- 关闭Chrome浏览器
- 重新启动脚本
永久修复方案
在脚本的键盘中断处理逻辑中添加driver.close()和driver.quit(),确保脚本退出时能彻底关闭Chrome实例,避免端口残留占用问题。
内容的提问来源于stack exchange,提问作者reepicheep05
相关产品推荐
相关产品推荐

