Python Selenium 与 ChromeDriver 入门指南
在 Python 自动化测试和网页爬虫领域,Selenium 是最常用的工具之一,而 ChromeDriver 则是连接 Python 代码与 Google Chrome 浏览器的桥梁,通过它们,你可以实现模拟人工操作浏览器(如点击、输入、滚动、截屏等)的功能。
环境准备
在使用 ChromeDriver 之前,你需要确保系统中已安装以下组件:
- Python: 编程语言环境。
- Google Chrome 浏览器: 实际运行操作的浏览器。
- Selenium 库: Python 的自动化控制库。
- ChromeDriver: 与你当前 Chrome 浏览器版本严格对应的驱动程序。
安装 Selenium
在终端或命令行中运行以下命令:pip install selenium
推荐:使用 webdriver-manager (自动管理驱动)
手动下载 ChromeDriver 经常会遇到“浏览器版本与驱动版本不匹配”的问题,强烈建议使用 webdriver-manager 来自动下载并管理驱动。
安装命令:pip install webdriver-manager
基础代码示例
以下是一个使用 webdriver-manager 实现的自动化访问示例,这种方式最稳定,无需手动配置环境变量。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
# 1. 配置 Chrome 选项
chrome_options = Options()
# chrome_options.add_argument("--headless") # 如果不想看到浏览器界面,可以开启无头模式
# 2. 使用 Service 和 ChromeDriverManager 自动初始化驱动
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)
try:
# 3. 访问指定的 URL
driver.get("https://www.baidu.com")
# 4. 打印网页标题
print(f"当前页面标题是: {driver.title}")
finally:
# 5. 操作完成后关闭浏览器
driver.quit()
核心操作详解
一旦浏览器启动,你就可以通过以下几种方式与网页进行交互:
查找元素 (Locating Elements)
要操作网页,首先要找到对应的 HTML 元素,常用的定位方式包括:
- ID 定位:
driver.find_element(By.ID, "element_id") - Class Name 定位:
driver.find_element(By.CLASS_NAME, "class_name") - XPath 定位:
driver.find_element(By.XPATH, "//div[@id='main']")(最强大,支持复杂逻辑) - CSS Selector 定位:
driver.find_element(By.CSS_SELECTOR, ".login-btn")
模拟用户行为
- 输入文本:
element.send_keys("你的内容") - 点击按钮:
element.click() - 清空输入框:
element.clear() - 获取文本内容:
element.text
等待机制 (Waiting)
网页加载需要时间,如果代码执行太快,会导致找不到元素而报错。
- 隐式等待 (Implicit Wait): 设置一个全局等待时间。
driver.implicitly_wait(10)(在查找元素前最多等待 10 秒) - 显式等待 (Explicit Wait): 针对特定元素进行等待(推荐使用)。
通过WebDriverWait配合expected_conditions使用。
常见问题与进阶技巧
- 解决版本不匹配: 如果不使用
webdriver-manager,请务必前往 ChromeDriver 官网 下载与你 Chrome 浏览器版本号完全一致的驱动。 - 无头模式 (Headless Mode): 在服务器或后台运行时,可以使用
--headless参数,这样浏览器会在后台运行,不会弹出窗口,节省系统资源。 - 防止被检测: 某些网站会检测 Selenium,可以通过设置
user-agent或使用undetected-chromedriver库来降低被识别为机器人的概率。 - 窗口管理:
driver.maximize_window(): 最大化窗口。driver.save_screenshot("page.png"): 网页截图。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/488488.html



