Ubuntu 22.04中Selenium 4搭配WebDriver Manager启动Firefox失败求助
问题与解决方法
问题详情
- 系统:Ubuntu 22.04
- Selenium版本:4.8
- 操作流程:
- 手动下载最新Geckodriver,设置可执行权限后移至
/usr/local/bin/ - 安装WebDriver Manager后运行测试代码
- 手动下载最新Geckodriver,设置可执行权限后移至
- 测试代码:
# selenium 4 - updating geckodriver for firefox from selenium import webdriver from selenium.webdriver.firefox.service import Service as FirefoxService from webdriver_manager.firefox import GeckoDriverManager driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))
- 核心报错:
selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 127
- 完整错误日志:
[WDM] - Downloading: 19.0kB [00:00, 13.9MB/s] Traceback (most recent call last): File "/home/gizmo/PycharmProject/PythonProjects/web/firefox_selenium.py", line 6, in <module> driver = webdriver.Firefox(service=Service(GeckoDriverManager().install())) File "/home/gizmo/PycharmProject/PythonProjects/venv/lib/python3.10/site-packages/selenium/webdriver/firefox/webdriver.py", line 196, in __init__ super().__init__(command_executor=executor, options=options, keep_alive=True) File "/home/gizmo/PycharmProject/PythonProjects/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 286, in __init__ self.start_session(capabilities, browser_profile) File "/home/gizmo/PycharmProject/PythonProjects/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 378, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/home/gizmo/PycharmProject/PythonProjects/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 440, in execute self.error_handler.check_response(response) File "/home/gizmo/PycharmProject/PythonProjects/venv/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 127
- 目标:通过WebDriver Manager管理Geckodriver并验证环境配置正确
解决步骤
1. 补装系统依赖库
Status 127多数是Geckodriver缺少运行依赖,执行以下命令安装必需库:
sudo apt install libx11-xcb1 libdbus-glib-1-2 libgtk-3-0 libxt6
2. 删除手动安装的Geckodriver避免冲突
WebDriver Manager会自动下载并管理独立的Geckodriver版本,手动放置的版本会导致路径冲突,执行删除:
sudo rm /usr/local/bin/geckodriver
3. 修正代码中的别名不一致问题
错误日志显示代码中使用了Service而非导入的FirefoxService,统一写法避免潜在问题,修改后的测试代码:
from selenium import webdriver from selenium.webdriver.firefox.service import Service as FirefoxService from webdriver_manager.firefox import GeckoDriverManager driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install())) # 增加验证步骤,打开百度并打印标题 driver.get("https://www.baidu.com") print("页面标题:", driver.title) driver.quit()
4. 验证Geckodriver可独立运行
直接运行WebDriver Manager下载的Geckodriver,确认无依赖问题:
# 执行以下命令查看版本,路径会自动匹配下载的版本 ~/.wdm/drivers/geckodriver/linux64/*/geckodriver --version
如果能正常输出版本信息,说明Geckodriver本身正常;若仍报错,重新执行步骤1补装依赖。
5. 确保Firefox版本兼容
Selenium 4.8需要匹配对应版本的Firefox,检查并更新Firefox:
# 查看当前版本 firefox --version # 更新到最新版本 sudo apt update && sudo apt upgrade firefox
内容的提问来源于stack exchange,提问作者Gizmo
相关产品推荐
相关产品推荐

