05 说说 Selenium WebDriver 的工作原理
2026/9/8...大约 2 分钟
05|说说 Selenium WebDriver 的工作原理
开场先给三层结构:测试脚本 → 浏览器驱动(ChromeDriver、GeckoDriver)→ 浏览器——脚本不直接操作浏览器,是通过驱动这个「中间人」完成的。
回答思路
第一步:讲通信机制
脚本和驱动之间走 HTTP 协议,用的是 W3C 标准的 WebDriver 协议——每次 find_element、click 本质上都是向驱动发一次 HTTP 请求,驱动再翻译成浏览器内部的指令去操作页面。所以本地跑和远程跑(Remote WebDriver 指向远端地址)只是请求发到哪的区别。
第二步:用这个原理解释两个现象(显魔法时刻)
- 为什么驱动版本必须和浏览器版本匹配——协议翻译层对不上就失灵
- UI 自动化为什么慢——每条命令都是一次网络往返,这也解释了弱网下为什么容易超时
能把原理落到现象上,面试官就知道你是真懂不是背的。
第三步:顺带讲演进史
Selenium IDE 是录制插件给人用的;RC 是被 WebDriver 汇编淘汰的老架构(靠注入 JS 驱动)——现在说 Selenium 默认就是 WebDriver。一两句带过显示知识面。
收尾:衔接实践
理解这个原理才能理解 Grid 是什么(一堆驱动的资源池)、docker 里跑浏览器的原理(驱动加浏览器打包成镜像)——往分布式执行的方向留个钩子。
考察重点
| 维度 | 说明 |
|---|---|
| 企业动机 | 大厂测开经典原理题,考的是知其然也知其所以然——只会调用 API 不懂原理的人,遇到环境问题、协议问题就没辙 |
| 过线标准 | 三层结构 + HTTP/W3C 协议通信讲清 |
| 区分度 | 能用原理解释「驱动版本匹配」「UI 自动化为什么慢」的是真理解;只会背三层结构的是刚学 |
| 加分项 | 提到 W3C 标准、Remote WebDriver、Grid 的原理延伸 |
| 减分项 | 说「Selenium 直接操作浏览器」——最核心的一层没懂 |
来源
整理自知识星球帖《面试情报 03|自动化测试 20 题》,返回题库。