一、什么是 Selenium?

简单来说,Selenium 是一款开源的网页自动化工具,它可以模拟人工在浏览器上的所有操作(点击、输入、滚动、下拉框选择等),支持 Chrome、Firefox、Edge 等主流浏览器。

常被用于:网页自动化测试、数据爬取、重复性网页任务自动化(如自动填报、自动登录)等场景。

二、环境搭建

新手入门的核心是先把环境配通,这一步是基础,避免后续踩坑。

步骤 1:安装 Python

如果你的电脑还没有安装 Python,先下载安装:

  1. 下载地址:Python 官方下载(推荐 3.8 及以上版本)

  2. 安装注意:勾选 "Add Python to PATH"(添加到系统环境变量,否则终端无法识别 python 命令)

  3. 验证:打开终端(CMD / 终端),输入 python --versionpython3 --version,能显示版本号即安装成功。

步骤 2:安装 Selenium 库

打开终端,执行以下命令安装 Selenium(直接安装最新稳定版即可):

bash

运行

pip install selenium
# 若国内下载缓慢,可使用清华镜像源加速
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

步骤 3:配置浏览器驱动(关键步骤)

Selenium 无法直接控制浏览器,需要一个浏览器驱动作为 “桥梁”,驱动需满足两个条件:

  1. 对应你电脑上的浏览器版本(如 Chrome 120 版本,需下载 Chrome 120 对应的驱动)

  2. 对应你的操作系统(Windows/macOS/Linux)

推荐方案:自动配置驱动(新手首选,避免版本匹配麻烦)

手动下载驱动容易出现版本不匹配问题,推荐使用 webdriver-manager 库,它能自动检测浏览器版本并下载对应驱动,无需手动操作。

终端执行命令安装 webdriver-manager

bash

运行

pip install webdriver-manager
# 国内镜像加速
pip install webdriver-manager -i https://pypi.tuna.tsinghua.edu.cn/simple

备选方案:手动配置驱动(了解即可)

如果想手动配置,以 Chrome 浏览器为例:

  1. 查看 Chrome 版本:打开 Chrome → 右上角三个点 → 帮助 → 关于 Google Chrome

  2. 下载对应驱动:Chrome 驱动官方下载(国内无法访问可搜 “淘宝 Chrome 驱动镜像”)

  3. 配置环境变量:将下载的驱动解压(得到 chromedriver.exe(Windows)/ chromedriver(macOS)),放到 Python 安装目录,或直接添加到系统环境变量路径中。

三、第一个 Selenium 程序(Hello World)

我们先实现一个最简单的功能:打开 Chrome 浏览器 → 访问百度首页 → 停留 5 秒 → 关闭浏览器。

完整代码

python

运行

# 1. 导入所需模块
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

# 2. 初始化浏览器驱动(自动获取对应 Chrome 驱动,无需手动配置)
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

try:
    # 3. 访问指定网页(百度首页)
    driver.get("https://www.baidu.com")
    
    # 4. 打印当前网页标题,验证是否访问成功
    print("当前网页标题:", driver.title)
    
    # 5. 停留 5 秒(模拟人工操作,方便观察效果)
    time.sleep(5)

finally:
    # 6. 关闭浏览器(无论程序是否出错,都确保浏览器关闭,避免进程残留)
    driver.quit()

运行结果

  1. 运行代码后,会自动打开一个 Chrome 浏览器窗口,并跳转到百度首页

  2. 终端会输出:当前网页标题: 百度一下,你就知道

  3. 5 秒后,浏览器自动关闭

代码关键部分解释

  1. webdriver.Chrome(...):初始化 Chrome 浏览器驱动,后续所有操作都通过 driver 对象完成。

  2. Service(ChromeDriverManager().install()):由 webdriver-manager 自动下载并配置对应驱动,新手无需关注驱动路径。

  3. driver.get(url):访问指定 URL 地址。

  4. driver.title:获取当前网页的标题(<title> 标签内容)。

  5. driver.quit():关闭浏览器并释放驱动进程(区别于 driver.close(),后者仅关闭当前标签页,浏览器进程仍残留)。

四、Selenium 核心基础操作

入门阶段,掌握以下核心操作,就能完成大部分简单的网页自动化任务。

1. 元素定位(核心中的核心)

网页上的所有操作(点击按钮、输入文本)都需要先定位到对应的元素(如百度的搜索框、搜索按钮)。

Selenium 提供了多种元素定位方式,新手优先掌握以下 4 种:

定位方式

方法

适用场景

ID 定位

driver.find_element(By.ID, "元素id")

元素有唯一 ID(推荐,效率最高)

名称定位

driver.find_element(By.NAME, "元素name")

元素有唯一 name 属性

XPath 定位

driver.find_element(By.XPATH, "XPath表达式")

无 ID/name 时使用(万能,灵活)

CSS 选择器定位

driver.find_element(By.CSS_SELECTOR, "CSS表达式")

无 ID/name 时使用(效率高于 XPath)

示例:定位百度搜索框和搜索按钮

python

运行

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

try:
    driver.get("https://www.baidu.com")
    
    # 1. 定位百度搜索框(ID 定位,搜索框的 ID 为 "kw")
    search_input = driver.find_element(By.ID, "kw")
    
    # 2. 定位百度搜索按钮(XPath 定位,万能方式)
    search_button = driver.find_element(By.XPATH, '//input[@value="百度一下"]')
    
    print("元素定位成功!")
    time.sleep(5)

finally:
    driver.quit()

小贴士:如何获取元素的 ID/XPath/CSS?

打开浏览器 → 按 F12 打开开发者工具 → 切换到「Elements」标签 → 按 Ctrl+Shift+C(或点击左上角选择图标)→ 点击网页上的目标元素 → 开发者工具会高亮对应代码,右键代码可复制「Copy ID」「Copy XPath」「Copy CSS selector」。

2. 元素操作(常用)

定位到元素后,就可以对元素进行操作,以下是最常用的 3 种操作:

  1. send_keys("内容"):向输入框中输入文本

  2. click():点击元素(按钮、链接、复选框等)

  3. text:获取元素的文本内容(如链接文字、按钮文字)

示例:自动在百度搜索「Selenium 入门」

python

运行

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

try:
    driver.get("https://www.baidu.com")
    # 1. 定位搜索框并输入关键词
    search_input = driver.find_element(By.ID, "kw")
    search_input.send_keys("Selenium 入门")
    
    # 2. 定位搜索按钮并点击
    search_button = driver.find_element(By.XPATH, '//input[@value="百度一下"]')
    search_button.click()
    
    # 3. 停留 10 秒,查看搜索结果
    time.sleep(10)
    
    # 4. 示例:获取第一个搜索结果的文本
    first_result = driver.find_element(By.XPATH, '//div[@id="content_left"]/div[1]//h3/a')
    print("第一个搜索结果标题:", first_result.text)

finally:
    driver.quit()

3. 浏览器常用操作

python

运行

# 1. 最大化浏览器窗口
driver.maximize_window()

# 2. 刷新当前网页
driver.refresh()

# 3. 后退到上一个网页(类似浏览器左上角后退按钮)
driver.back()

# 4. 前进到下一个网页(类似浏览器左上角前进按钮)
driver.forward()

# 5. 获取当前网页的 URL
current_url = driver.current_url
print("当前网页 URL:", current_url)

# 6. 设置浏览器窗口大小(宽 800,高 600)
driver.set_window_size(800, 600)

五、新手常见问题

  1. 浏览器打开后立即关闭:没有添加 time.sleep() 停留,或代码执行完成后直接 driver.quit(),可添加延时观察效果。

  2. 元素定位失败(报错 NoSuchElementException)

    • 元素还未加载完成就开始定位(后续可学习显式等待 WebDriverWait 解决)

    • 复制的 XPath/CSS 表达式有误,或元素的 ID/name 动态变化

  3. 驱动版本不匹配:优先使用 webdriver-manager 自动配置,避免手动下载的版本误差。


总结

  1. Selenium 入门核心是环境搭建(Python + Selenium + webdriver-manager),其中 webdriver-manager 可避免驱动版本匹配问题。

  2. 网页自动化的核心流程是:初始化驱动 → 访问网页 → 定位元素 → 操作元素 → 关闭浏览器

  3. 新手优先掌握 ID/XPath 元素定位,以及 send_keys()(输入)、click()(点击)两个核心元素操作。

掌握以上内容后,你就可以尝试实现简单的自动化任务(如自动登录简单网站、自动填报表单),后续可进一步学习等待机制、多标签页操作、下拉框选择等进阶内容。