什么是 Selenium WebDriver?
⚡ 智能摘要
Selenium WebDriver 是一个开源自动化框架,它通过原生 API 直接控制真实浏览器,从而能够使用诸如 tv 等语言对 Web 应用程序进行快速、可靠且跨浏览器的测试。 Java, PythonC# 和 Ruby。

什么是 Selenium WebDriver?
Selenium 网络驱动程序 是一个开源的 API 集合,用于自动化测试 Web 应用程序。它可以验证 Web 应用程序在包括 Chrome 在内的多种浏览器上是否按预期运行。 Firefox, 苹果浏览器, Microsoft EdgeWebDriver 还支持在不同操作系统上进行跨浏览器测试,包括 Internet Explorer 和 Windows 浏览器。
不比 Selenium IDE WebDriver 允许您使用真正的编程语言来设计测试脚本,因此您可以应用条件逻辑,例如 if-then-else 和 switch-case,以及其他功能。ping WebDriver 支持类似 for 和 do-while 这样的循环结构。它支持以下语言:
- Java
- .NET (C#)
- PHP
- Python
- Perl的
- 红宝石
- Java脚本(通过 WebDriverJS / WebDriverIO)
你不需要全部学习——精通其中一种就足够了。本教程中的示例使用 Java 与 Eclipse IDE。
Archi结构 Selenium 网络驱动程序
Selenium WebDriver 遵循客户端-服务器架构,直接从操作系统层面控制浏览器。要运行任何脚本,您只需要您首选的编程语言集成开发环境(IDE)(其中包含 WebDriver)。 Selenium 命令)和目标浏览器。
该框架由四个关键组成部分构成: Selenium 客户端库(语言绑定)、基于 HTTP 的 JSON Wire 协议、浏览器驱动程序(例如 ChromeDriver 和 GeckoDriver)以及浏览器本身,这些组件通过标准化的 HTTP 请求进行通信,这正是 WebDriver 具备下文所述的速度和准确性优势的原因所在。
速度
WebDriver 比 Selenium RC 是因为它直接与浏览器通信,并使用浏览器的原生引擎进行控制。没有中间层。 Java脚本代理服务器,消除了一个主要的性能瓶颈。
真实互动
WebDriver 与页面元素的交互方式与真实用户完全相同。例如,如果被测页面上有一个禁用的文本框,WebDriver 就无法在其中输入内容——因为真实用户也无法做到。这种高度逼真的模拟方式可以减少测试结果中的误报。
API
WebDriver 公开了一个简洁明了的 API,其中不包含冗余或令人困惑的命令,使测试脚本更容易阅读和维护。
浏览器支持
WebDriver 还支持无头 HtmlUnit 浏览器。由于 HtmlUnit 没有图形界面,因此被称为“无头”浏览器,它在后台隐蔽运行。这使得它执行测试的速度极快,因为无需渲染时间,非常适合无法使用图形用户界面的 CI/CD 流水线。
创新中心 Selenium WebDriver 工作原理逐步指南
考虑到架构,以下是典型的 WebDriver 测试的执行方式:
- 编写测试脚本 使用您选择的语言 Selenium 客户端库。
- 序列化命令—绑定转换每个 Selenium 调用 JSON Wire Protocol 请求。
- 发送到浏览器驱动程序—请求到达本地驱动程序(ChromeDriver、GeckoDriver、EdgeDriver),该驱动程序监听本地端口。
- 驱动程序指示浏览器 使用其原生自动化 API 来点击、输入或读取元素。
- 浏览器执行并响应并将结果以 JSON 有效负载的形式返回。
- 断言并报告——例如这样的框架 TestNG, JUnit或者,PyTest 会验证响应并记录通过或失败。
同一个脚本既可以在本地运行,也可以在 Docker 容器内运行,或者在远程网格上运行,例如 Selenium 网格未经修改。
Selenium WebDriver 与 Selenium IDE 与 Selenium RC
正确的 Selenium 工具的选择取决于测试目标。下表对这三种工具进行了比较:
| 特性 | Selenium IDE | Selenium RC | Selenium 网络驱动程序 |
|---|---|---|---|
| 类型 | 浏览器插件 | Java脚本代理服务器 | 原生 API 自动化 |
| 速度 | 快速播放 | 放慢 | 最快 |
| 语言 | 没有 | 多 | 多 |
| 无头浏览器 | 没有 | 没有 | 是 |
| 状态 | 有限 | 已过时 | W3C 标准 |
对于现代项目,WebDriver 是推荐的选择——它符合 W3C 标准,积极维护,并且在语言和浏览器支持方面最为广泛。
WebDriver 的局限性
WebDriver虽然功能强大,但也并非完美无缺。了解它的局限性有助于您制定切实可行的自动化策略。
WebDriver 无法立即支持全新浏览器
由于 WebDriver 在操作系统层面运行,而不同的浏览器与操作系统通信的方式各不相同,因此每个新版本的浏览器都可能需要更新驱动程序。WebDriver 团队需要时间来研究新浏览器的运行机制,才能发布兼容的驱动程序。在此之前,某些命令在新浏览器上的行为可能不一致,甚至完全失败。
无内置测试报告功能
WebDriver 本身不会生成测试结果报告。您必须将其与单元测试框架集成(TestNG, JUnit(例如 NUnit、PyTest)或报告库(例如 Allure、ExtentReports)来捕获通过/失败摘要和屏幕截图。

.jpg)




