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

Windows10下Python调用Selenium Geckodriver遇SessionNotCreatedException权限拒绝

解决Firefox + Geckodriver的SessionNotCreatedException: permission denied问题

我之前也踩过这个权限坑,折腾了好几个小时才捋清楚,给你几个实用的排查和解决办法,应该能帮你搞定:

  • 检查Geckodriver的执行权限
    哪怕已经把路径加到PATH里,文件本身没执行权限也是白搭。Linux/macOS下直接在终端跑这条命令(替换成你的Geckodriver实际路径):

    chmod +x /your/actual/path/to/geckodriver
    

    Windows用户右键Geckodriver文件→属性→安全标签,确认当前登录用户拥有「读取和执行」的权限。

  • 用管理员/root身份运行脚本
    有时候系统会限制普通用户启动浏览器进程,尤其是脚本涉及到一些系统级资源访问的时候。Windows右键命令提示符或你的IDE,选「以管理员身份运行」;Linux/macOS就在执行脚本的命令前加sudo试试。

  • 添加Firefox启动参数绕过权限限制
    Firefox默认的安全沙箱可能会阻止Geckodriver建立连接,你可以初始化Driver的时候加几个参数:

    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    
    firefox_options = Options()
    firefox_options.add_argument("--no-sandbox")  # 禁用沙箱,解决多数权限拦截问题
    firefox_options.add_argument("--disable-dev-shm-usage")  # 避免临时内存空间不足的报错
    firefox_options.add_argument("--headless=new")  # 如果用无头模式,记得用新版参数(旧的--headless已经被弃用)
    
    driver = webdriver.Firefox(options=firefox_options)
    

    这几个参数是解决这类权限问题的常用手段,亲测有效。

  • 指定自定义Firefox配置文件路径
    Selenium启动Firefox时会自动生成临时配置文件,如果你的用户对系统临时目录没有读写权限,就会触发权限报错。可以手动指定一个你有权限的目录作为配置文件路径:

    firefox_options.add_argument("-profile")
    firefox_options.add_argument("/path/to/your/own/profile/folder")
    

    先自己创建一个空文件夹,确保当前用户能读写它,再把路径填进去就行。

  • 确认Firefox和Geckodriver版本严格匹配
    虽然你说下了最新版,但偶尔会出现小版本不兼容的情况。比如Firefox 115.x对应Geckodriver 0.33.x,一定要核对官方的版本对应表,重新下载完全匹配的版本试试。

  • Linux系统检查SELinux/AppArmor限制
    如果是Linux环境,可能是系统安全模块拦住了Geckodriver和Firefox的交互。可以先临时关闭SELinux测试:

    sudo setenforce 0
    

    如果问题解决了,再去配置SELinux规则允许相关进程;要是用的AppArmor,就检查Firefox的配置文件,调整权限策略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:35:18