Ubuntu系统安装Chrome与ChromeDriver完整指南

发布时间:2026/7/16 9:54:23
Ubuntu系统安装Chrome与ChromeDriver完整指南 1. 项目概述在Ubuntu系统上部署最新版的Google Chrome浏览器及其配套的ChromeDriver驱动是许多开发者和测试工程师的刚需。作为Linux发行版中最受欢迎的版本之一Ubuntu广泛应用于开发环境搭建。而Chrome浏览器配合ChromeDriver的组合则是自动化测试特别是基于Selenium的Web自动化测试的标准配置。这个部署过程看似简单但实际操作中会遇到几个关键挑战首先Ubuntu默认软件仓库中的Chrome版本往往不是最新的其次ChromeDriver需要与Chrome浏览器版本严格匹配最后在无图形界面的服务器环境下部署时还需要特殊处理。本文将详细解决这些问题。2. 环境准备与依赖安装2.1 系统要求检查在开始安装前请确保您的Ubuntu系统满足以下要求Ubuntu 18.04 LTS或更高版本推荐20.04/22.04 LTS至少2GB可用内存至少5GB可用磁盘空间已配置sudo权限的用户可以通过以下命令检查系统信息lsb_release -a free -h df -h2.2 安装基础依赖Chrome浏览器需要一些基础库支持执行以下命令安装sudo apt update sudo apt install -y wget curl gnupg ca-certificates \ libxss1 libappindicator1 libindicator7 \ fonts-liberation libasound2 libnspr4 \ libnss3 xdg-utils libgbm1对于无图形界面的服务器环境还需要安装虚拟显示服务sudo apt install -y xvfb3. 安装Google Chrome浏览器3.1 添加Google Chrome官方源执行以下命令添加Google官方软件源wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - echo deb [archamd64] http://dl.google.com/linux/chrome/deb/ stable main | sudo tee /etc/apt/sources.list.d/google-chrome.list sudo apt update3.2 安装最新稳定版Chrome安装稳定版Chrome浏览器sudo apt install -y google-chrome-stable验证安装是否成功google-chrome-stable --version3.3 安装特定版本Chrome可选如果需要安装特定版本可以先查看可用版本apt-cache policy google-chrome-stable然后指定版本安装sudo apt install google-chrome-stable版本号4. 安装ChromeDriver4.1 确定Chrome浏览器版本首先获取已安装的Chrome浏览器版本CHROME_VERSION$(google-chrome-stable --version | awk {print $3} | cut -d . -f 1) echo $CHROME_VERSION4.2 下载匹配的ChromeDriver访问ChromeDriver官方下载页面https://chromedriver.chromium.org/downloads找到与Chrome主版本号匹配的ChromeDriver版本。使用wget下载对应版本wget https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_VERSION LATEST_VERSION$(cat LATEST_RELEASE_$CHROME_VERSION) wget https://chromedriver.storage.googleapis.com/$LATEST_VERSION/chromedriver_linux64.zip4.3 安装并配置ChromeDriver解压下载的文件并安装到系统路径unzip chromedriver_linux64.zip sudo mv chromedriver /usr/local/bin/ sudo chmod x /usr/local/bin/chromedriver验证安装chromedriver --version5. 配置与优化5.1 设置环境变量为方便使用可以设置以下环境变量echo export CHROME_BIN/usr/bin/google-chrome-stable ~/.bashrc echo export CHROMEDRIVER_BIN/usr/local/bin/chromedriver ~/.bashrc source ~/.bashrc5.2 无头模式配置对于无图形界面的服务器环境可以使用Xvfb创建虚拟显示Xvfb :99 -screen 0 1024x768x24 /dev/null 21 export DISPLAY:995.3 性能优化参数启动Chrome时可以添加以下优化参数google-chrome-stable --headless --disable-gpu --no-sandbox --disable-dev-shm-usage各参数说明--headless: 无头模式--disable-gpu: 禁用GPU加速--no-sandbox: 禁用沙箱仅测试环境使用--disable-dev-shm-usage: 避免使用/dev/shm6. 验证安装6.1 基本功能测试使用Python脚本验证Chrome和ChromeDriver是否能正常工作from selenium import webdriver from selenium.webdriver.chrome.options import Options options Options() options.add_argument(--headless) options.add_argument(--no-sandbox) options.add_argument(--disable-dev-shm-usage) driver webdriver.Chrome(optionsoptions) driver.get(https://www.google.com) print(driver.title) driver.quit()6.2 版本兼容性检查确保Chrome和ChromeDriver版本匹配google-chrome-stable --version chromedriver --version两个命令输出的主版本号第一个数字应该相同。7. 常见问题解决7.1 版本不匹配问题如果遇到版本不匹配错误SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XX解决方案检查当前Chrome版本下载对应版本的ChromeDriver替换旧的ChromeDriver7.2 内存不足问题在资源有限的服务器上可能会遇到内存不足错误可以增加交换空间sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile添加Chrome启动参数--disable-dev-shm-usage7.3 沙箱权限问题如果遇到沙箱相关错误Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno Operation not permitted解决方案添加启动参数--no-sandbox或者以root权限运行不推荐8. 自动化部署脚本为简化部署过程可以使用以下自动化脚本#!/bin/bash # 安装依赖 sudo apt update sudo apt install -y wget unzip xvfb # 安装Chrome wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - echo deb [archamd64] http://dl.google.com/linux/chrome/deb/ stable main | sudo tee /etc/apt/sources.list.d/google-chrome.list sudo apt update sudo apt install -y google-chrome-stable # 安装匹配的ChromeDriver CHROME_VERSION$(google-chrome-stable --version | awk {print $3} | cut -d . -f 1) wget -q https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_VERSION LATEST_VERSION$(cat LATEST_RELEASE_$CHROME_VERSION) wget -q https://chromedriver.storage.googleapis.com/$LATEST_VERSION/chromedriver_linux64.zip unzip chromedriver_linux64.zip sudo mv chromedriver /usr/local/bin/ sudo chmod x /usr/local/bin/chromedriver # 清理 rm LATEST_RELEASE_$CHROME_VERSION chromedriver_linux64.zip echo 安装完成 echo Chrome版本: $(google-chrome-stable --version) echo ChromeDriver版本: $(chromedriver --version)9. 维护与更新9.1 定期更新Chrome和ChromeDriver会频繁更新建议定期检查并更新sudo apt update sudo apt upgrade google-chrome-stable # 重新安装匹配的ChromeDriver CHROME_VERSION$(google-chrome-stable --version | awk {print $3} | cut -d . -f 1) wget -q https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_VERSION LATEST_VERSION$(cat LATEST_RELEASE_$CHROME_VERSION) wget -q https://chromedriver.storage.googleapis.com/$LATEST_VERSION/chromedriver_linux64.zip unzip -o chromedriver_linux64.zip -d /usr/local/bin/ sudo chmod x /usr/local/bin/chromedriver rm LATEST_RELEASE_$CHROME_VERSION chromedriver_linux64.zip9.2 多版本管理如果需要管理多个ChromeDriver版本可以使用符号链接# 下载特定版本 wget https://chromedriver.storage.googleapis.com/XX.XX.XX/chromedriver_linux64.zip unzip chromedriver_linux64.zip -d ~/chromedrivers/ # 创建符号链接 ln -sf ~/chromedrivers/chromedriver /usr/local/bin/chromedriver10. 高级配置10.1 使用代理服务器如果需要通过代理访问可以配置Chrome启动参数from selenium import webdriver options webdriver.ChromeOptions() options.add_argument(--proxy-serverhttp://your-proxy:port) driver webdriver.Chrome(optionsoptions)10.2 自定义用户数据目录保留用户数据可以实现登录状态持久化options webdriver.ChromeOptions() options.add_argument(--user-data-dir/path/to/userdata) driver webdriver.Chrome(optionsoptions)10.3 禁用扩展和通知为测试环境创建干净的浏览器实例options webdriver.ChromeOptions() options.add_argument(--disable-extensions) options.add_argument(--disable-notifications) driver webdriver.Chrome(optionsoptions)在实际使用中我发现保持Chrome和ChromeDriver版本同步是最关键的。建议设置一个定期检查更新的cron任务或者在使用前添加版本检查逻辑。对于持续集成环境可以在每次运行前强制更新到最新匹配版本确保测试环境的一致性。