ChromeDriver 是一个用于自动化控制 Google Chrome 浏览器的工具,常与 Selenium 一起使用,用于 Web 自动化测试、爬虫、UI 自动化等场景。以下是 ChromeDriver 的详细使用教程。
一、安装准备
1. 安装 Python(如使用 Python)
如果你使用 Python,确保已安装 Python(推荐 3.7+):
bash
python --version
2. 安装 Selenium
bash
pip install selenium
3. 下载 Chrome 浏览器
确保你的系统已安装 Google Chrome 浏览器。
可前往 https://www.google.com/chrome/ 下载。
4. 下载 ChromeDriver
ChromeDriver 的版本必须与你安装的 Chrome 浏览器版本匹配。
-
查看 Chrome 版本:
打开 Chrome → 地址栏输入
chrome://version
→ 查看"版本"字段,例如129.0.6668.90
-
下载对应版本的 ChromeDriver:
官网地址:https://chromedriver.chromium.org/
或直接访问:https://googlechromelabs.github.io/chrome-for-testing/
-
解压后得到
chromedriver
(Linux/macOS)或chromedriver.exe
(Windows)
二、配置 ChromeDriver
方法一:将 ChromeDriver 放入系统 PATH
-
Windows :将
chromedriver.exe
放入C:\Windows
或添加其所在目录到系统环境变量 PATH。 -
macOS/Linux :将
chromedriver
放入/usr/local/bin
或其他 PATH 目录,并赋予执行权限:bashchmod +x chromedriver sudo mv chromedriver /usr/local/bin/
方法二:在代码中指定路径(推荐初学者)
python
from selenium import webdriver
# 指定 chromedriver 路径
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
⚠️ 注意:Selenium 4.6+ 默认使用 WebDriver Manager 自动管理驱动,无需手动下载。
三、使用 WebDriver Manager(推荐方式)
安装 webdriver-manager
bash
pip install webdriver-manager
示例代码(自动下载匹配的 ChromeDriver)
python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# 自动下载并配置 ChromeDriver
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
# 打开网页
driver.get("https://www.baidu.com")
print(driver.title)
# 关闭浏览器
driver.quit()
四、常用操作示例
1. 元素定位
python
from selenium.webdriver.common.by import By
# 通过 ID 查找
element = driver.find_element(By.ID, "kw")
# 通过 CSS 选择器
element = driver.find_element(By.CSS_SELECTOR, "input#kw")
# 通过 XPath
element = driver.find_element(By.XPATH, "//input[@id='kw']")
2. 模拟输入与点击
python
element.send_keys("Selenium")
search_btn = driver.find_element(By.ID, "su")
search_btn.click()
3. 等待页面加载(显式等待)
python
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "result")))
4. 截图
python
driver.save_screenshot("screenshot.png")
五、常见问题
Q1: SessionNotCreatedException: This version of ChromeDriver only supports Chrome version XX
- 原因:ChromeDriver 与 Chrome 浏览器版本不匹配。
- 解决:升级 Chrome 或下载对应版本的 ChromeDriver;或使用
webdriver-manager
自动处理。
Q2: 驱动无法执行(macOS/Linux)
- 解决:运行
chmod +x chromedriver
赋予执行权限。
Q3: 浏览器自动关闭太快看不到效果?
- 在
driver.quit()
前加input("按回车退出...")
暂停。
六、进阶:无头模式(Headless)
python
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(service=service, options=chrome_options)
七、参考资料
- Selenium 官方文档:https://www.selenium.dev/documentation/
- ChromeDriver 官网:https://chromedriver.chromium.org/
- WebDriver Manager:https://pypi.org/project/webdriver-manager/
如果你告诉我你使用的操作系统(Windows/macOS/Linux)和编程语言(如 Python/Java/JS),我可以提供更具体的步骤!