news 2026/5/28 23:39:53

手把手在CentOS7上搭建Selenium自动化环境:Chrome 103 + ChromeDriver 配置避坑全记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手在CentOS7上搭建Selenium自动化环境:Chrome 103 + ChromeDriver 配置避坑全记录

在CentOS7上构建稳定Selenium环境:Chrome 103与ChromeDriver精准配对指南

当你在CentOS7服务器上部署Selenium自动化测试环境时,最令人头疼的莫过于浏览器与驱动版本不匹配的问题。本文将带你一步步解决这个痛点,从老版本Chrome的安装到精确匹配的ChromeDriver配置,最终通过Python脚本验证整个环境的可用性。

1. 环境准备与问题诊断

CentOS7作为企业级Linux发行版,因其稳定性被广泛用于生产环境。然而,当我们需要在其上安装最新版Chrome浏览器时,往往会遇到GLIBC版本不兼容的问题。这主要是因为CentOS7自带的GLIBC版本较低,而新版Chrome需要更高版本的GLIBC支持。

首先,我们需要确认系统基本信息:

cat /etc/centos-release uname -m

常见的报错信息如下:

Package: google-chrome-stable (/google-chrome-stable_current_x86_64) Requires: libc.so.6(GLIBC_2.25)(64bit)

这个错误明确告诉我们:系统缺少GLIBC_2.25库。在CentOS7上升级GLIBC是极其危险的操作,可能导致系统不稳定甚至崩溃。因此,更安全的解决方案是安装兼容的老版本Chrome。

2. 安装兼容的Chrome 103版本

经过多次测试,Chrome 103版本在CentOS7上表现稳定且兼容性良好。以下是具体安装步骤:

  1. 下载Chrome 103的RPM包:
wget http://dist.control.lth.se/public/CentOS-7/x86_64/google.x86_64/google-chrome-beta-103.0.5060.24-1.x86_64.rpm
  1. 安装下载的RPM包:
sudo yum install ./google-chrome-beta-103.0.5060.24-1.x86_64.rpm
  1. 验证安装:
google-chrome --version

预期输出:Google Chrome 103.0.5060.24 beta

为防止自动更新导致版本不兼容,建议禁用Chrome自动更新:

sudo yum-config-manager --save --setopt=google-chrome-stable.exclude=google-chrome-stable

3. 精确匹配ChromeDriver版本

ChromeDriver与Chrome浏览器版本必须严格匹配,否则Selenium脚本将无法正常运行。以下是查找和安装匹配版本的方法:

  1. 访问ChromeDriver官方索引页:
https://chromedriver.storage.googleapis.com/index.html
  1. 查找与Chrome 103.0.5060.24匹配的ChromeDriver版本(本例为103.0.5060.24)

  2. 下载并安装:

wget https://chromedriver.storage.googleapis.com/103.0.5060.24/chromedriver_linux64.zip unzip chromedriver_linux64.zip sudo mv chromedriver /usr/bin/chromedriver sudo chmod +x /usr/bin/chromedriver
  1. 验证安装:
chromedriver --version

预期输出应包含:ChromeDriver 103.0.5060.24

4. 配置无头模式与系统依赖

在生产环境中,我们通常需要以无头模式运行Chrome。这需要安装一些额外的系统依赖:

sudo yum install -y Xvfb libXfont Xorg sudo yum groupinstall -y "X Window System" "Desktop" "Fonts" sudo yum install -y google-noto-* fonts-*

对于无头模式,可以使用Xvfb创建虚拟显示:

Xvfb :99 -screen 0 1024x768x24 & export DISPLAY=:99

5. Python环境配置与测试验证

确保Python环境已安装Selenium库:

pip install selenium

下面是一个简单的测试脚本,验证环境是否配置成功:

from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') driver = webdriver.Chrome(options=chrome_options) try: driver.get("https://www.example.com") print("页面标题:", driver.title) assert "Example Domain" in driver.title print("环境验证成功!") finally: driver.quit()

如果一切正常,你将看到"环境验证成功!"的输出。这表明你的CentOS7服务器已经成功配置了可用的Selenium自动化测试环境。

6. 常见问题排查与优化

即使按照上述步骤操作,仍可能遇到一些问题。以下是常见问题及解决方案:

问题现象可能原因解决方案
Chrome启动崩溃共享内存不足添加--disable-dev-shm-usage参数
无法创建会话ChromeDriver版本不匹配检查并安装精确匹配版本
字体显示异常系统缺少字体安装完整字体包
页面加载超时网络或代理问题检查网络设置,适当增加超时时间

对于性能优化,可以考虑以下配置:

chrome_options.add_argument('--disable-gpu') # 禁用GPU加速 chrome_options.add_argument('--window-size=1920,1080') # 设置窗口大小 chrome_options.add_argument('--blink-settings=imagesEnabled=false') # 禁用图片加载

7. 生产环境部署建议

在企业级应用中,我们还需要考虑以下方面:

  1. 资源隔离:使用Docker容器隔离测试环境,避免影响主机系统
  2. 日志收集:配置详细的日志记录,便于问题排查
  3. 监控告警:设置资源使用监控,防止内存泄漏等问题
  4. 并发控制:合理控制并发测试数量,避免系统过载

一个典型的部署架构如下:

测试管理平台 → Selenium Grid → 多个CentOS节点 → Docker容器

这种架构可以实现测试任务的分布式执行和资源的弹性调度。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 23:39:49

Windows 11系统焕新指南:从卡顿到流畅的全方位优化方案

Windows 11系统焕新指南:从卡顿到流畅的全方位优化方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and c…

作者头像 李华
网站建设 2026/5/23 2:05:14

【每周分享】C语言的整型提升是什么概念

在介绍C语言的整型提升概念之前,我们先来看一段实际的代码例子和仿真结果。主要代码如下:复制int main(){ unsigned char i0; unsigned char temp0; unsigned char dat0x89; unsigned char SER0; printf("method 1\…

作者头像 李华
网站建设 2026/5/23 2:04:59

自媒体人必看:OpenClaw+Gemma-3-12b-it全平台内容一键分发方案

自媒体人必看:OpenClawGemma-3-12b-it全平台内容一键分发方案 1. 为什么我需要自动化内容分发 作为一个小型工作室的内容负责人,我每天需要将同一篇文章同步发布到微信公众号、知乎和头条号三个平台。最让我头疼的不是写作本身,而是每个平台…

作者头像 李华
网站建设 2026/5/23 2:05:00

如何用Kafka和RabbitMQ打造高并发的消息推送中台?实战经验分享

高并发消息推送中台实战:Kafka与RabbitMQ的架构抉择 当App的日活突破百万量级,每秒数千条推送通知涌向用户设备时,技术团队往往会面临一个关键抉择:该用Kafka还是RabbitMQ作为消息引擎的脊柱?三年前我们重构电商大促系…

作者头像 李华
网站建设 2026/5/23 2:05:13

OBS-NDI插件完全配置指南:从依赖解决到多场景应用

OBS-NDI插件完全配置指南:从依赖解决到多场景应用 【免费下载链接】obs-ndi DistroAV (formerly OBS-NDI): NDI integration for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-ndi 问题导入:为什么你的OBS直播总是遇到设备连接难…

作者头像 李华