You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统下Python调用Selenium无法启动WebDriver的问题排查求助

问题根源&解决方案

嘿,我直接从你提供的Geckodriver日志里找到了核心问题:

Running Firefox as root in a regular user's session is not supported. ($HOME is /Users/username which is owned by user.)

你用sudo python3来启动脚本,这会让整个Python进程(包括它调用的Geckodriver和Firefox浏览器)以root身份运行,但Firefox出于安全和权限逻辑的限制,绝对不允许在普通用户的会话环境下以root用户启动——这就是你看到“Process unexpectedly closed with status 1”错误的直接原因。

快速修复步骤

1. 放弃sudo,用普通用户身份运行脚本

这是最直接有效的解决办法,把启动命令改成:

python3 /Users/username/Library/'Mobile Documents/com~apple~CloudDocs'/test.py

如果之前加sudo是因为遇到了权限问题(比如脚本所在目录或依赖文件的读写权限不足),你可以针对性调整权限:

  • 给脚本添加执行权限:
    chmod +x /Users/username/Library/'Mobile Documents/com~apple~CloudDocs'/test.py
    
  • 修复目录归属(谨慎操作,确保路径正确):
    chown -R username:staff /Users/username/Library/'Mobile Documents/com~apple~CloudDocs'/
    

2. 额外的优化建议(避免后续踩坑)

  • 废弃API替换:在新版Selenium里,FirefoxProfile已经被标记为废弃,推荐用Options.set_preference()来设置浏览器偏好,比如原来用profile配置的下载路径、隐私设置,都可以换成这种方式:
    from selenium.webdriver.firefox.options import Options
    options = Options()
    # 示例:设置自定义下载目录
    options.set_preference("browser.download.dir", "/Users/username/Downloads")
    options.set_preference("browser.download.folderList", 2)
    # 初始化驱动时只传options即可
    driver = webdriver.Firefox(options=options, executable_path=executable_path)
    
  • 检查Geckodriver权限:确保你的普通用户有Geckodriver文件的执行权限,执行这条命令:
    chmod +x /path/to/your/geckodriver
    
  • 版本兼容性确认:虽然你说已经下载了对应版本的Geckodriver,但可以再核对下Firefox版本和Geckodriver的匹配关系(比如Firefox 90+搭配Geckodriver 0.29+是完全兼容的)。

内容的提问来源于stack exchange,提问作者AppCreator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 10:37:29