Selenium启动Chrome时崩溃求助(MacOS Ventura环境)
问题描述
在MacOS Ventura系统中,尝试通过Selenium加载Chrome用户配置文件以实现Google账号自动化免重复登录,但Chrome刚启动就崩溃。已确认chromedriver与Google Chrome版本一致。
代码示例
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service service = Service("/usr/local/bin/chromedriver") ch_options = Options() # options ch_options.add_argument("user-data-dir=/Users/matheus/Library/Application Support/Google/Chrome") ch_options.add_argument("--profile-directory=Profile 2") driver = webdriver.Chrome(service=service, options=ch_options) driver.get("https://gmail.com")
崩溃日志
Traceback (most recent call last): File "/Users/matheus/dev/work-automations/main.py", line 12, in <module> driver = webdriver.Chrome(service=service, options=ch_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/matheus/dev/work-automations/venv/lib/python3.11/site-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__ super().__init__(DesiredCapabilities.CHROME['browserName'], "goog", File "/Users/matheus/dev/work-automations/venv/lib/python3.11/site-packages/selenium/webdriver/chromium/webdriver.py", line 92, in __init__ super().__init__( File "/Users/matheus/dev/work-automations/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 272, in __init__ self.start_session(capabilities, browser_profile) File "/Users/matheus/dev/work-automations/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 364, in start_session response = self.execute(Command.NEW_SESSION, parameters) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/matheus/dev/work-automations/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 429, in execute self.error_handler.check_response(response) File "/Users/matheus/dev/work-automations/venv/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py", line 243, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited normally. (chrome not reachable) (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.) Stacktrace: 0 chromedriver 0x000000010276aa88 chromedriver + 4123272 1 chromedriver 0x00000001026f6778 chromedriver + 3647352 2 chromedriver 0x00000001023b8ac4 chromedriver + 248516 3 chromedriver 0x00000001023dc2a4 chromedriver + 393892 4 chromedriver 0x00000001023d8858 chromedriver + 378968 5 chromedriver 0x00000001024125a0 chromedriver + 615840 6 chromedriver 0x00000001024121d8 chromedriver + 614872 7 chromedriver 0x00000001023e2b10 chromedriver + 420624 8 chromedriver 0x00000001023e3c30 chromedriver + 425008 9 chromedriver 0x000000010273cae4 chromedriver + 3934948 10 chromedriver 0x000000010273ff24 chromedriver + 3948324 11 chromedriver 0x0000000102740508 chromedriver + 3949832 12 chromedriver 0x0000000102746b30 chromedriver + 3975984 13 chromedriver 0x0000000102740b24 chromedriver + 3951396 14 chromedriver 0x000000010271b71c chromedriver + 3798812 15 chromedriver 0x000000010275d2f0 chromedriver + 4068080 16 chromedriver 0x000000010275d444 chromedriver + 4068420 17 chromedriver 0x0000000102771450 chromedriver + 4150352 18 libsystem_pthread.dylib 0x000000018421a06c _pthread_start + 148 19 libsystem_pthread.dylib 0x0000000184214e2c thread_start + 8 Process finished with exit code 1
解决方案
针对MacOS Ventura下加载Chrome配置文件导致崩溃的问题,可按以下步骤排查修复:
- 关闭所有Chrome进程:Selenium无法访问被占用的用户配置文件,通过活动监视器彻底关闭Chrome的所有进程后再运行代码。
- 修正路径格式:MacOS路径含空格时需用引号包裹或转义,修改
user-data-dir参数:# 方式1:用引号包裹路径 ch_options.add_argument('user-data-dir="/Users/matheus/Library/Application Support/Google/Chrome"') # 方式2:转义空格 ch_options.add_argument("user-data-dir=/Users/matheus/Library/Application\ Support/Google/Chrome") - 检查目录权限:确保运行Python的用户对
/Users/matheus/Library/Application Support/Google/Chrome/Profile 2有读写权限,可通过右键目录→「显示简介」→「共享与权限」添加当前用户并赋予权限。 - 复制配置到独立目录:直接使用系统默认配置目录易引发冲突,复制
Profile 2到新目录(如/Users/matheus/dev/chrome-profile),修改代码路径:ch_options.add_argument("user-data-dir=/Users/matheus/dev/chrome-profile") - 添加额外启动参数:MacOS下添加参数避免崩溃:
ch_options.add_argument("--no-sandbox") ch_options.add_argument("--disable-dev-shm-usage") ch_options.add_argument("--remote-debugging-port=9222")
内容的提问来源于stack exchange,提问作者Matheus Tenório
相关产品推荐
相关产品推荐

