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

AWS EC2 Ubuntu环境下Python+Selenium+Geckodriver读取Marionette端口失败

解决方案

1. 更换Headless模式参数(优先尝试)

Selenium 4.x开始,Firefox旧版headless=True参数存在兼容性问题,建议改用官方推荐的新参数:

from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
from selenium.webdriver.firefox.options import Options as FirefoxOption
from webdriver_manager.firefox import GeckoDriverManager

options = FirefoxOption()
# 替换旧的无头模式设置
options.add_argument("--headless=new")
# 禁用GPU避免无头模式渲染异常
options.add_argument("--disable-gpu")
# 强制指定Marionette通信端口
options.add_argument("--marionette-port=2828")

service = FirefoxService(GeckoDriverManager().install())
# 生成调试日志,方便排查深层问题
service.log_path = "./geckodriver.log"

driver = webdriver.Firefox(
    service=service,
    options=options
)

2. 补全Firefox运行依赖

AWS EC2 Ubuntu服务器默认缺少桌面环境依赖,执行以下命令安装:

sudo apt update
sudo apt install -y libgtk-3-0 libdbus-glib-1-2 libxt6

3. 手动指定Firefox二进制路径

若系统Firefox路径不标准,先通过which firefox命令查找路径,再在代码中指定:

# 替换为实际查到的路径
options.binary_location = "/usr/bin/firefox"

4. 调整Geckodriver启动参数

通过Service对象延长超时时间并开启调试日志:

service = FirefoxService(
    executable_path=GeckoDriverManager().install(),
    # 延长启动超时至30秒
    timeout=30,
    # 开启调试级日志
    service_args=["--log", "debug"]
)

5. 确认版本兼容性

你的Geckodriver 0.32.0理论支持Firefox 106-108(你的Firefox 107符合要求),若仍有问题,可尝试:

  • 重新安装Firefox确保完整性
  • 更换Geckodriver至对应版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:01:03