Selenium + Python 学习路线图
第一阶段:基础准备
在开始学习 Selenium 之前,你需要掌握一些 Python 的基础知识。

- Python 基础
- 变量、数据类型、循环、条件判断、函数、类与对象、模块、文件操作。
- 为什么重要:Selenium 只是一个工具,你需要用 Python 来编写控制逻辑、处理数据和组织代码,没有扎实的 Python 基础,后续学习会非常困难。
- 学习资源:
- 视频:B站搜索“Python入门”,有很多免费且优质的教程,如“黑马程序员Python入门”、“尚硅谷Python快速上手”等。
- 文档:Python官方文档
第二阶段:Selenium 核心入门
这是学习 Selenium 的核心阶段,重点是掌握如何驱动浏览器进行基本操作。
-
环境搭建
- 安装 Selenium 库:
pip install selenium - 下载浏览器驱动:
- Chrome: 下载 ChromeDriver,确保版本与你的 Chrome 浏览器版本匹配。
- Firefox: 下载 GeckoDriver
- 注意:驱动程序需要放在 Python 的环境变量路径下,或者通过代码明确指定其路径。
- 安装 Selenium 库:
-
核心概念与 API
- WebDriver:Selenium 的核心,是自动化脚本的“司机”,负责与浏览器通信。
- 元素定位:这是自动化测试的基石,你需要学会如何找到页面上的元素。
find_element(By.ID, "id_value")find_element(By.NAME, "name_value")find_element(By.CLASS_NAME, "class_value")find_element(By.TAG_NAME, "tag_value")find_element(By.LINK_TEXT, "link_text")find_element(By.PARTIAL_LINK_TEXT, "partial_text")find_element(By.XPATH, "xpath_expression")- 非常强大,必须掌握find_element(By.CSS_SELECTOR, "css_selector")- 非常高效,必须掌握
- 浏览器操作:
driver.get("url")- 打开网页driver.maximize_window()- 最大化窗口driver.back(),driver.forward(),driver.refresh()- 前进、后退、刷新driver.title,driver.current_url- 获取页面标题和 URLdriver.quit()- 关闭浏览器并释放资源
- 元素交互:
element.send_keys("text")- 输入文本element.click()- 点击element.clear()- 清空输入框element.text- 获取元素的文本内容element.get_attribute("attr_name")- 获取元素属性
- 等待机制:非常重要!
- 强制等待:
time.sleep(5)- 不推荐,效率低。 - 隐式等待:
driver.implicitly_wait(10)- 全局等待,设置一次后对后续所有find_element生效。 - 显式等待:
WebDriverWait(driver, 10).until(...)- 针对特定元素等待,最灵活、最推荐的方式。
- 强制等待:
第三阶段:Selenium 进阶与实战
掌握了基础后,你需要学习更复杂的场景和技巧。

-
处理弹窗与多窗口
- 处理
alert,confirm,prompt弹框。 - 处理多标签页 (
driver.window_handles) 和多窗口。
- 处理
-
处理 iframe 框架
- 当元素在 iframe 内时,必须先
driver.switch_to.frame("frame_id_or_name")切换进去,操作完后切回driver.switch_to.default_content()。
- 当元素在 iframe 内时,必须先
-
文件上传
- 处理两种上传方式:
- 普通
<input type="file">元素:直接send_keys文件路径。 - 非 input 元素(如 Flash/JS 上传):需要借助第三方工具如
AutoIt或pywinauto。
- 普通
- 处理两种上传方式:
-
执行 JavaScript
(图片来源网络,侵删)driver.execute_script("js_code")- 可以执行任意 JS 代码,非常强大,可以用来操作滚动条、隐藏元素等。
-
无头模式
- 在不打开浏览器界面的情况下运行脚本,适合在服务器上运行。
options.add_argument("--headless")。
- 在不打开浏览器界面的情况下运行脚本,适合在服务器上运行。
-
截图
driver.save_screenshot("path/to/screenshot.png")- 用于调试和失败时记录。
第四阶段:实战项目(检验学习成果)
理论学得再多,不如亲手做一个项目。
-
Web 自动化测试脚本
- 目标:为一个网站(如注册、登录页面)编写自动化测试用例。
- 技术点:元素定位、元素交互、断言 (
assert)、测试报告生成(如Allure)。 - 流程:打开页面 -> 定位用户名/密码输入框 -> 输入数据 -> 点击登录 -> 断言登录成功(如检查 URL 或欢迎语是否存在)。
-
电商网站商品信息爬虫
- 目标:爬取某个电商网站(如京东、淘宝)的商品名称、价格、评论数。
- 技术点:翻页处理、动态数据加载(可能需要滚动页面或分析 API)、数据存储(存入 CSV、Excel 或数据库)。
- 流程:打开商品列表页 -> 循环遍历商品 -> 定位并提取信息 -> 点击下一页或处理 "加载更多" -> 存储数据。
-
自动化登录与数据填报
- 目标:每天自动登录某个系统(如公司内部系统、学校系统),并填写日报或签到表单。
- 技术点:Cookie 处理(实现免登录)、表单填写、提交按钮点击。
优质学习资源推荐
视频教程
-
Bilibili (B站) - 首选免费资源
- 搜索关键词:
Selenium Python,selenium 教程,selenium 自动化测试,selenium 爬虫。 - 推荐 UP主/系列:
- 黑马程序员:有非常系统化的 Selenium 自动化测试课程,从零开始,非常详细。
- 尚硅谷:课程质量高,讲解清晰,同样有 Selenium 相关的优质教程。
- 狂神说:风格比较活泼,适合喜欢轻松学习氛围的初学者。
- 个人 UP主:搜索 "codeAllen" 等,也有很多高质量的实战教程。
- 搜索关键词:
-
YouTube
- 搜索关键词:
Selenium Python Tutorial,Web Scraping with Selenium Python。 - 优点:英文资源,可以锻炼听力,很多国际知名的技术博主(如 Tech With Tim, freeCodeCamp.org)都有相关教程。
- 搜索关键词:
文档与书籍
-
官方文档 (必看)
- Selenium with Python:https://www.selenium.dev/selenium/docs/api/py/index.html
- 这是最权威、最准确的资料,当你遇到 API 使用问题时,第一反应应该是查阅官方文档。
-
书籍
- 《Python 自动化测试与开发实战》:这本书比较系统地介绍了 Selenium 在测试领域的应用。
- 《Python 网络数据采集》:本书作者是 Ryan Mitchell,虽然主要讲
Requests和BeautifulSoup,但其中也有一章专门讲解 Selenium,是爬虫领域的经典之作。
社区与博客
- Stack Overflow:遇到问题时,把错误信息和代码片段放上去搜索,大概率能找到答案。
- CSDN、掘金、知乎:国内开发者社区,有大量关于 Selenium 的实战经验和踩坑总结。
学习建议
- 动手 > 看视频:看 10 小时视频,不如自己动手写 1 小时代码,代码是敲出来的,不是看出来的。
- 学会使用浏览器开发者工具 (F12):这是定位元素和分析网页结构的“神器”,Elements 面板可以帮你快速找到元素的 XPath 和 CSS Selector。
- 从简单开始:不要一开始就挑战复杂项目,先从一个简单的页面(如百度首页)开始,练习定位元素、输入文字、点击按钮。
- 学会调试:使用
print()语句或 IDE 的调试功能,观察每一步代码的执行情况和变量的值,这是解决问题的关键。 - 拥抱错误:学习过程中会遇到各种报错(
NoSuchElementException,ElementNotInteractableException等),不要害怕,每个错误都是一次学习机会,学会分析错误信息并解决它。
祝你学习顺利,早日成为 Selenium 高手!
