一、安装chrome浏览器并安装webdriver
1、下载chrome的ubuntu版本
https://www.google.com/chrome/网址去选择平台。
2、ubuntu安装chrome
sudo apt install ./google-chrome-stable_current_amd64.deb -y
3、查看chrome的版本。
google-chrome --version
4、下载对应版本的chrome的webdriver
https://googlechromelabs.github.io/chrome-for-testing/
(一)手动下载匹配版本(适配自定义Chrome版本,精准无兼容问题)
查看当前Chrome版本
bash
google-chrome --version
去ChromeDriver官网(https://googlechromelabs.github.io/chrome-for-testing/)下载对应版本的Linux版压缩包,下载后解压,执行命令移到系统可识别路径
bash
unzip chromedriver-linux64.zip
sudo mv chromedriver-linux64/chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
验证安装成功
bash
chromedriver --version
(二)、安装 Firefox + GeckoDriver
1. 安装Firefox浏览器,无则执行
bash
sudo apt update && sudo apt install -y firefox
2. 安装GeckoDriver(Firefox专属WebDriver)
bash
sudo apt install -y geckodriver
3. 验证安装成功
bash
geckodriver --version
(三)、 关键配置(解决Python Selenium调用报错)
1. 给WebDriver添加执行权限(避免权限不足报错)
bash
sudo chmod +x /usr/local/bin/chromedriver # 对应ChromeDriver
sudo chmod +x /usr/bin/geckodriver # 对应GeckoDriver
2. Python中调用示例(直接运行即可验证)
python
# Chrome + ChromeDriver 调用
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
(四)、 常见问题快速解决
- 报错“版本不匹配”:卸载现有WebDriver,按方法2手动下载与浏览器完全一致的版本
- 报错“找不到WebDriver”:执行 echo $PATH 查看 /usr/local/bin 或 /usr/bin 是否在路径中,不在则手动添加
- 权限报错:重新执行上述的 chmod +x 命令赋予执行权限
5、针对本机的chrome版本,在这里下载
https://storage.googleapis.com/chrome-for-testing-public/143.0.7499.169/linux64/chrome-linux64.zip
6、在本机创建一个chrome的调试目录
mkdir -p /tmp/chrome-debug-new # 自动创建父目录,无则新建
持久目录(长期复用,如自动化测试专用)
bash
mkdir -p ~/.chrome-debug-profile # 存用户主目录,不易丢失
7. 带调试参数启动新用户目录的Chrome
bash
# 示例,替换路径即可用持久目录
google-chrome --remote-debugging-port=9222 --remote-debugging-address=127.0.0.1 --user-data-dir=~/.chrome-debug-profile --no-sandbox
后台常驻版(关闭终端不退出)
bash
nohup google-chrome --remote-debugging-port=9222 --remote-debugging-address=127.0.0.1 --user-data-dir=/tmp/chrome-debug-new --no-sandbox > /dev/null 2>&1 &
8. 验证新目录与调试生效
① 查调试接口:浏览器访问 http://127.0.0.1:9222,能看到调试界面即成功
② 确认用户目录:新目录下出现Chrome配置文件(如Default、Cache),说明目录生效
bash
ls /tmp/chrome-debug-new # 临时目录示例
二、多用户目录并行调试(同时开2个独立调试实例)
bash
# 实例1:端口9222,目录/tmp/chrome-debug-1
nohup google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug-1 --no-sandbox > /dev/null 2>&1 &
# 实例2:端口9223,目录/tmp/chrome-debug-2
nohup google-chrome --remote-debugging-port=9223 --user-data-dir=/tmp/chrome-debug-2 --no-sandbox > /dev/null 2>&1 &
分别访问 http://127.0.0.1:9222 和 http://127.0.0.1:9223 即可独立调试。
三、Python Selenium 连接新目录调试实例
python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(options=chrome_options)
print(driver.title) # 输出当前页面标题,验证连接成功
driver.get("https://www.baidu.com")
四、关键参数说明
- --user-data-dir=路径:强制Chrome使用指定目录存储配置、缓存等,与默认目录完全隔离[__LINK_ICON]
- --remote-debugging-port=9222:调试端口,多实例需用不同端口(如9222/9223)
- --no-sandbox:Ubuntu下root用户必加,普通用户可选,避免权限报错
五、常见问题
- 权限报错:执行 chmod -R 755 /tmp/chrome-debug-new 赋予目录读写权限
- 端口占用:换未被占用端口,用 ss -tuln | grep 9222 检查端口占用情况