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

Termux Ubuntu下Selenium调用Firefox报geckodriver状态码-4错误

问题根因
  • 弃用警告属于Selenium版本迭代后的语法不兼容:Selenium 4及以上版本废弃了直接在webdriver.Firefox()中传入executable_path参数的写法,要求通过Service类传递驱动路径,该警告不会直接导致程序崩溃。
  • 核心报错(geckodriver退出状态码-4)是Termux Ubuntu环境的特有问题,触发原因包含三类:一是未安装Firefox浏览器本体,geckodriver仅为驱动程序,依赖浏览器本体运行;二是下载的geckodriver架构与设备不匹配、缺少可执行权限;三是Termux无图形界面,未配置无头模式导致浏览器启动失败,另外proot环境缺少部分运行依赖也会触发该错误。
解决步骤
  • 安装核心依赖与Firefox本体
    执行以下命令更新源并安装必要组件:
apt update && apt upgrade -y
apt install firefox libglib2.0-0 libnss3 libx11-6 -y
  • 校验geckodriver配置
    • 确认下载的geckodriver版本匹配设备架构:ARM64架构手机选择linux-aarch64构建包,x86架构设备选择linux64构建包,不可跨架构使用。
    • 给geckodriver添加可执行权限:
chmod +x /root/firefox_driver/geckodriver
  • 可选操作:将geckodriver移动到系统PATH目录实现全局调用,避免路径错误:
mv /root/firefox_driver/geckodriver /usr/local/bin/
  • 修正测试代码
    按照Selenium新版语法要求传入Service对象,同时添加无头运行参数适配Termux无图形界面的环境,参考代码如下:
from selenium import webdriver
from selenium.webdriver.firefox.service import Service

# 初始化驱动服务
service = Service(executable_path='/root/firefox_driver/geckodriver')
# 配置浏览器启动参数
options = webdriver.FirefoxOptions()
options.add_argument('--headless')  # 无头模式,无图形界面必加
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

# 初始化浏览器实例
driver = webdriver.Firefox(service=service, options=options)
# 功能测试
driver.get('https://www.baidu.com')
print(driver.title)
driver.quit()

运行修正后的代码即可正常启动Selenium自动化程序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:06:28