Selenium入门
一、什么是 Selenium?
简单来说,Selenium 是一款开源的网页自动化工具,它可以模拟人工在浏览器上的所有操作(点击、输入、滚动、下拉框选择等),支持 Chrome、Firefox、Edge 等主流浏览器。
常被用于:网页自动化测试、数据爬取、重复性网页任务自动化(如自动填报、自动登录)等场景。
二、环境搭建
新手入门的核心是先把环境配通,这一步是基础,避免后续踩坑。
步骤 1:安装 Python
如果你的电脑还没有安装 Python,先下载安装:
下载地址:Python 官方下载(推荐 3.8 及以上版本)
安装注意:勾选 "Add Python to PATH"(添加到系统环境变量,否则终端无法识别
python命令)验证:打开终端(CMD / 终端),输入
python --version或python3 --version,能显示版本号即安装成功。
步骤 2:安装 Selenium 库
打开终端,执行以下命令安装 Selenium(直接安装最新稳定版即可):
bash
运行
pip install selenium
# 若国内下载缓慢,可使用清华镜像源加速
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
步骤 3:配置浏览器驱动(关键步骤)
Selenium 无法直接控制浏览器,需要一个浏览器驱动作为 “桥梁”,驱动需满足两个条件:
对应你电脑上的浏览器版本(如 Chrome 120 版本,需下载 Chrome 120 对应的驱动)
对应你的操作系统(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 浏览器为例:
查看 Chrome 版本:打开 Chrome → 右上角三个点 → 帮助 → 关于 Google Chrome
下载对应驱动:Chrome 驱动官方下载(国内无法访问可搜 “淘宝 Chrome 驱动镜像”)
配置环境变量:将下载的驱动解压(得到
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()
运行结果
运行代码后,会自动打开一个 Chrome 浏览器窗口,并跳转到百度首页
终端会输出:
当前网页标题: 百度一下,你就知道5 秒后,浏览器自动关闭
代码关键部分解释
webdriver.Chrome(...):初始化 Chrome 浏览器驱动,后续所有操作都通过driver对象完成。Service(ChromeDriverManager().install()):由webdriver-manager自动下载并配置对应驱动,新手无需关注驱动路径。driver.get(url):访问指定 URL 地址。driver.title:获取当前网页的标题(<title>标签内容)。driver.quit():关闭浏览器并释放驱动进程(区别于driver.close(),后者仅关闭当前标签页,浏览器进程仍残留)。
四、Selenium 核心基础操作
入门阶段,掌握以下核心操作,就能完成大部分简单的网页自动化任务。
1. 元素定位(核心中的核心)
网页上的所有操作(点击按钮、输入文本)都需要先定位到对应的元素(如百度的搜索框、搜索按钮)。
Selenium 提供了多种元素定位方式,新手优先掌握以下 4 种:
示例:定位百度搜索框和搜索按钮
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 种操作:
send_keys("内容"):向输入框中输入文本click():点击元素(按钮、链接、复选框等)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)
五、新手常见问题
浏览器打开后立即关闭:没有添加
time.sleep()停留,或代码执行完成后直接driver.quit(),可添加延时观察效果。元素定位失败(报错 NoSuchElementException):
元素还未加载完成就开始定位(后续可学习显式等待
WebDriverWait解决)复制的 XPath/CSS 表达式有误,或元素的 ID/name 动态变化
驱动版本不匹配:优先使用
webdriver-manager自动配置,避免手动下载的版本误差。
总结
Selenium 入门核心是环境搭建(Python + Selenium + webdriver-manager),其中
webdriver-manager可避免驱动版本匹配问题。网页自动化的核心流程是:初始化驱动 → 访问网页 → 定位元素 → 操作元素 → 关闭浏览器。
新手优先掌握
ID/XPath元素定位,以及send_keys()(输入)、click()(点击)两个核心元素操作。
掌握以上内容后,你就可以尝试实现简单的自动化任务(如自动登录简单网站、自动填报表单),后续可进一步学习等待机制、多标签页操作、下拉框选择等进阶内容。