尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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任务或者在使用前添加版本检查逻辑。对于持续集成环境可以在每次运行前强制更新到最新匹配版本确保测试环境的一致性。
RELATED

相关推荐

Windows高效工具与系统优化全攻略

Windows高效工具与系统优化全攻略

1. Windows装机必备软件全景指南作为从Windows 95时代就开始折腾系统的老用户,我见证了这个操作系统生态的演进历程。每次重装系统后,总有些软件像老朋友一样必须第一时间请回电脑里——它们或是效率提升的利器,或是系统优化的神器&#xff0…

📅 2026/8/24 2:14:25
QT应用极致瘦身:从臃肿到精悍,打造最小化独立exe的实战指南

QT应用极致瘦身:从臃肿到精悍,打造最小化独立exe的实战指南

1. 为什么你的QT程序打包后变得臃肿不堪 第一次用QT开发完程序准备打包发布时,相信很多人都会被生成的exe文件体积吓一跳。明明自己的代码只有十几兆,怎么打包后就膨胀到几百兆了?这就像你收拾行李准备短途旅行,结果发现行李箱塞满…

📅 2026/8/24 2:14:26
Windows DWM合成窗口管理机制与性能优化实战

Windows DWM合成窗口管理机制与性能优化实战

1. Windows桌面窗口管理器(DWM)深度解析Windows桌面窗口管理器(Desktop Window Manager,简称DWM)是微软从Vista系统开始引入的核心图形组件。作为现代Windows图形界面的基石,DWM采用全新的合成窗口架构取代…

📅 2026/9/10 12:24:06
MORE NEWS

更多资讯

📰

CRMEB多商户v4.0升级拆解:TP8+PHP8.0技术底座与性能优化实践

CRMEB 多商户系统(PHP)v4.0 的更新预告在电商开发圈里传得很快。我从早前版本就在用 CRMEB 接项目,这些年最大的感受是:多商户电商的复杂度,远比大多数人想象得高,一套能打的系统,不光要功能全&…

📰

RevokeMsgPatcher 2.1 深度评测:Windows 微信/QQ/TIM 二进制防撤回补丁

RevokeMsgPatcher 2.1 深度评测:Windows 微信/QQ/TIM 二进制防撤回补丁 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: ht…

📰

测试计划与测试方案的区别及实战设计

1. 测试计划与测试方案的本质区别刚入行的测试工程师经常会把测试计划和测试方案混为一谈,这就像把建筑蓝图和施工方案当成同一个东西。实际上,测试计划是战略层面的总体规划,而测试方案是战术层面的具体实施方法。测试计划的核心是回答"…

📰

三步搞定 Arduino ESP32 安装:从“卡住不动“到 Blink 跑通的完整教程

三步搞定 Arduino ESP32 安装:从"卡住不动"到 Blink 跑通的完整教程 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 Arduino ESP32 安装失败的瞬间都…

📰

RevokeMsgPatcher 2.1 完全指南:Windows 防撤回补丁

RevokeMsgPatcher 2.1 完全指南:Windows 防撤回补丁 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/…

📰

OMX Team Worker 协议实战指南:tmux 团队协作下的 ACK、任务生命周期与邮箱协议全解析

OMX Team Worker 协议实战指南:tmux 团队协作下的 ACK、任务生命周期与邮箱协议全解析 【免费下载链接】oh-my-codex OmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more. 项目地址: https://gitcode.com/GitHub_Trend…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬