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

求助:Selenium+Python启动Firefox遇connection refused错误

解决Selenium连接Firefox时的connection refused错误

问题总结

你运行以下Selenium代码时:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')

Firefox浏览器能正常打开,但无法访问指定链接,同时抛出selenium.common.exceptions.WebDriverException: Message: connection refused错误。从geckodriver日志可以看到,Marionette服务已经在2828端口启动监听,但Selenium依然无法建立连接。你附上的截图也显示浏览器已打开但无法加载目标页面,这和报错信息指向的连接问题一致。

你的环境配置如下:

  • 最新版Selenium
  • 最新版Firefox浏览器
  • Python 2.7.14
  • 操作系统:Kali Linux 2.0

解决方案

下面是几个经过验证的修复步骤,建议按优先级尝试:

1. 匹配geckodriver与Firefox版本

你的geckodriver版本是0.20.1,这个版本仅兼容Firefox 57~60版本区间,但你使用的是最新版Firefox,版本不匹配是这类问题最常见的诱因。

  • 下载与你当前Firefox版本对应的geckodriver(可查看geckodriver的版本说明文档确认兼容范围)
  • 替换现有geckodriver文件,并给它添加可执行权限:
    chmod +x /path/to/your/geckodriver
    
  • 在代码中明确指定geckodriver的路径:
    from selenium import webdriver
    browser = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver') # 替换为你的实际路径
    browser.get('http://seleniumhq.org/')
    

2. 修复Python2.7与Selenium的兼容性

最新版Selenium(4.x及以上)已经完全放弃了对Python2.7的支持,如果你安装的是这类高版本Selenium,必然会出现兼容性问题。

  • 降级到最后一个支持Python2.7的稳定版Selenium:
    pip uninstall selenium
    pip install selenium==3.141.0
    

3. 强制指定Marionette端口并检查Firefox配置

有时候自动分配端口会出现冲突,或者Firefox的Marionette服务未正确启用:

  1. 打开Firefox浏览器,在地址栏输入about:config,搜索marionette.enabled,确保该选项的值为true(如果不是,双击修改即可)
  2. 修改代码,强制指定Marionette的监听端口:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options

opts = Options()
opts.add_argument('--marionette-port=2828')
browser = webdriver.Firefox(firefox_options=opts, executable_path='/path/to/geckodriver')
browser.get('http://seleniumhq.org/')

4. 检查系统权限问题

Kali Linux的安全配置可能导致权限不足,影响geckodriver的正常运行:

  • 确保geckodriver拥有可执行权限:
    chmod +x /path/to/geckodriver
    
  • 检查/tmp目录的权限(geckodriver会在这里创建临时浏览器配置文件):
    ls -ld /tmp
    # 如果权限不是drwxrwxrwx,执行以下命令修改:
    sudo chmod 777 /tmp
    

验证步骤

完成上述步骤后,先关闭所有Firefox进程,再重新运行代码。如果问题依然存在,可以:

  • 用geckodriver --version和firefox --version命令确认两者的版本号,确保兼容
  • 尝试在终端直接运行geckodriver,观察是否有异常输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:34:29