为什么选择 Python + Selenium?
- Python 语法简洁:相比 Java、C#,Python 更容易上手,代码可读性高。
- Selenium 功能强大:它是自动化测试领域的“王者”,支持所有主流浏览器(Chrome, Firefox, Edge 等)和操作系统。
- 应用广泛:除了 Web 应用测试,它还被广泛用于网络爬虫、自动化办公、网站数据监控等场景。
- 社区活跃:遇到任何问题,你几乎都能在 Stack Overflow、GitHub 或国内社区(如 CSDN、掘金)上找到答案。
学习路径与核心概念(图文结合)
在学习视频之前,先对整体框架有个了解,这样看视频时更有方向。

环境准备与基础理论
- Python 环境:安装 Python,并了解
pip包管理工具。 - Selenium 安装:通过
pip install selenium安装 Selenium 库。 - WebDriver:这是 Selenium 的核心,它相当于一个“桥梁”,让你的 Python 代码能够控制浏览器。
- 理解原理:你的 Python 脚本 -> Selenium 库 -> WebDriver (浏览器驱动) -> 真实的浏览器 (Chrome, Firefox...)。
- 下载对应驱动:你需要下载与你浏览器版本匹配的 WebDriver(ChromeDriver),并将其路径配置到代码中。
核心 API 操作(视频学习的重点)
这是视频教程的核心部分,你将学习如何用代码模拟人的操作。
| 操作类别 | 核心方法 | 说明 | 视频中常见演示 |
|---|---|---|---|
| 浏览器控制 | driver.get(url) |
打开一个网页 | 打开百度首页 |
driver.maximize_window() |
最大化窗口 | 让窗口全屏,方便观察 | |
driver.title / driver.current_url |
获取页面标题和当前URL | 验证是否跳转到了正确页面 | |
driver.quit() |
关闭整个浏览器 | 测试结束后,必须关闭,释放资源 | |
| 元素定位 | find_element(By.ID, "value") |
通过 ID 定位(最快) | 定位百度搜索框的 id="kw" |
find_element(By.NAME, "value") |
通过 Name 属性定位 | ||
find_element(By.CLASS_NAME, "value") |
通过 Class 属性定位 | 定位“新闻”链接的 class="mnav" |
|
find_element(By.TAG_NAME, "value") |
通过标签名定位 | 定位 <a>
| |
find_element(By.LINK_TEXT, "value") |
通过完整的链接文本定位 | 直接定位“新闻”这个文本 | |
find_element(By.PARTIAL_LINK_TEXT, "value") |
通过部分链接文本定位 | 定位“新闻” | |
find_element(By.XPATH, "value")** |
通过 XPath 定位(最强大、最常用) | 可以根据路径、属性、文本等灵活定位任何元素,是视频教程的重中之重。 | |
find_element(By.CSS_SELECTOR, "value")** |
通过 CSS 选择器定位(性能好,推荐) | 和 XPath 一样强大,语法更简洁,也是视频教程的重点。 | |
| 元素操作 | .send_keys("文本") |
在输入框中输入文本 | 在搜索框输入 "Selenium 教程" |
.click() |
点击一个元素 | 点击“百度一下”按钮 | |
.clear() |
清空输入框内容 | ||
.submit() |
提交表单(相当于按回车) | ||
| 等待机制 | time.sleep(5) |
强制等待(不推荐) | 暂停脚本5秒,简单粗暴,但效率低,视频中会用来演示,但会强调其弊端。 |
WebDriverWait |
显式等待(强烈推荐) | 智能等待,最多等待指定时间,直到某个元素出现或可操作,超时报错,这是编写稳定脚本的必备技能,视频会重点讲解。 | |
implicitly_wait(10) |
隐式等待 | 全局等待,在查找元素时,如果找不到,会等待指定时间再去查找。 | |
| 获取信息 | .text |
获取元素的可见文本 | 获取搜索结果的标题 |
.get_attribute("属性名") |
获取元素的属性值 | 获取图片的 src 属性 |
|
.is_displayed() |
判断元素是否可见 | ||
.is_enabled() |
判断元素是否可用 | ||
| 下拉框处理 | from selenium.webdriver.support.select import Select |
导入 Select 类 | 处理生日、地区等下拉选择框 |
select_by_value("value") |
通过 value 值选择 | ||
select_by_visible_text("文本") |
通过可见文本选择 | ||
| 弹窗处理 | driver.switch_to.alert |
切换到警告弹窗 | 处理 alert(), confirm(), prompt() 弹出的对话框 |
.accept() |
接受弹窗(点击“确定”) | ||
.dismiss() |
取消弹窗(点击“取消”) | ||
| 多窗口/多标签页 | driver.window_handles |
获取所有窗口的句柄(ID)列表 | 处理点击链接后新开标签页的场景 |
driver.switch_to.window(handle) |
切换到指定的窗口 | ||
| iframe 框架 | driver.switch_to.frame("frame_name/id") |
切换到 iframe 内部 | 处理嵌套在 <iframe> 里的元素,这是新手常见难点,视频会专门讲解。 |
推荐视频学习资源
以下资源按从入门到进阶的顺序排列,并标注了特点,方便你选择。
A. 综合系统课程(适合零基础入门)
-
Bilibili - 尚硅谷 Selenium 自动化测试教程
- 链接:在 B 站搜索 “尚硅谷 Selenium”
- 特点:
- 免费、系统、全面,这是国内公认最好的 Selenium 入门教程之一。
- 讲解非常细致,从环境搭建到所有核心 API,再到项目实战,一应俱全。
- 视频质量高,配有清晰的 PPT 和代码演示。
- 特别适合没有任何编程或自动化基础的小白。
- 适合人群:所有初学者,强烈推荐作为第一门课程。
-
Udemy - "Selenium WebDriver with Python - Beginner to Expert"
(图片来源网络,侵删)- 链接:Udemy 课程链接 (通常有折扣)
- 特点:
- 英文课程,国际化视野,讲师 Rahul Shetty 是印度著名的自动化测试专家。
- 内容非常实用,结合了大量真实企业案例。
- 不仅讲 Selenium,还会涉及 CI/CD、TestNG、框架设计等进阶内容。
- 配有丰富的练习和测验。
- 适合人群:有一定英文基础,希望从企业级应用角度学习 Selenium 的学习者。
-
Coursera / edX - 相关专项课程
- 链接:在平台搜索 "Software Testing" 或 "Automation"
- 特点:
- 学术性强,体系化,通常由知名大学或公司提供。
- 更侧重于软件测试的理论和整个生命周期,Selenium 只是其中一部分工具。
- 适合人群:希望全面了解软件测试领域,而不仅仅是工具使用的学习者。
B. 实战与技巧类视频(适合有一定基础后)
-
Bilibili - 各种 UP 主的实战项目
- 搜索关键词:“Selenium 项目实战”、“Selenium 框架”、“Python 爬虫 Selenium”。
- 特点:
- 案例驱动,很多 UP 主会带你从零开始搭建一个自动化测试框架,或者用 Selenium 写一个爬虫项目。
- 可以学到如何组织代码、使用日志、读取配置文件、使用
pytest等测试框架。 - 能看到不同开发者解决问题的思路。
- 推荐 UP 主:可以关注一些专注于测试开发的 UP 主,如“测试开发小哥”、“自动化测试教程”等,他们的内容比较新,紧跟行业趋势。
-
YouTube - "Selenium Tips and Tricks"
- 搜索关键词:"Selenium Python best practices", "Handle dynamic elements Selenium", "Selenium CSS Selector tutorial"。
- 特点:
- 聚焦特定难点,很多视频专门讲解如何处理动态元素、如何写出高效的 XPath/CSS、如何进行性能优化等。
- 英文视频,但通常时间不长,直击痛点。
- 适合人群:在项目中遇到具体困难,需要快速解决方案的学习者。
学习建议与最佳实践
- 动手 > 看视频:看懂不等于会,一定要跟着视频敲代码,自己尝试修改和扩展。
- 从模仿到创造:初期可以 1:1 模仿视频代码,然后尝试用它去测试你自己的目标网站(如登录、发帖等)。
- 学会使用浏览器开发者工具 (F12):这是定位元素的“眼睛”,一定要熟练掌握:
- Elements (元素):查看、复制元素的 XPath 和 CSS Selector。
- Console (控制台):运行 JS 代码,调试脚本。
- Network (网络):分析接口请求,对爬虫和性能测试很有帮助。
- 优先掌握显式等待和高级定位:
time.sleep()是万恶之源,尽早习惯使用WebDriverWait,XPath 和 CSS Selector 是你的“屠龙宝刀”,务必精通。 - 学习 Page Object Model (POM) 设计模式:当你的测试用例变多时,代码会变得难以维护,POM 是一种设计模式,它将页面元素和操作逻辑分离开,让你的代码结构更清晰、可维护性更高,很多进阶视频都会讲到这个模式。
- 尝试搭建自己的项目:
- 自动化测试项目:为你常用的网站(如博客园、知乎)编写一个登录、发帖、删帖的自动化脚本。
- 小爬虫项目:用 Selenium 爬取动态加载的网站数据(如商品评论、新闻资讯),并存入 Excel 或数据库。
学习 Python + Selenium 是一个“理论 + 实践 + 持续优化”的过程。

- 入门阶段:跟着 尚硅谷 的系统视频,把环境搭好,把核心 API 过一遍,完成几个简单的网页操作。
- 进阶阶段:通过 B站/YouTube 的实战视频,学习处理复杂场景(如 iframe、弹窗、动态元素),并开始接触 POM 和 pytest 框架。
- 精通阶段:在实际项目中不断应用和总结,解决各种疑难杂症,最终能够独立设计和维护一个稳定、高效的自动化测试体系。
祝你学习顺利,早日成为自动化测试高手!
