主要介绍现在应用最广泛的Web GUI 自动化测试工具Selenium的工作原理。
Selenium 的实现原理
Selenium V1.0
Selenium V1.0 的核心是 Selenium RC(Remote Control)
Selenium RC 利用的原理是:JavaScript 代码可以很方便地获取页面上的任何元素并执行各种操作,核心是基于 JavaScript 代码注入。
- Selenium RC 的基本模块
Selenium RC Server,主要包括 Selenium Core,Http Proxy 和 Launcher 三部分:
Selenium Core,是被注入到浏览器页面中的 JavaScript 函数集合,用来实现界面元素的识别和操作;
Http Proxy,作为代理服务器修改 JavaScript 的源,以达到“欺骗”被测站点的目的;
Launcher,用来在启动测试浏览器时完成 Selenium Core 的注入和浏览器代理的设置。
Client Libraries,是测试用例代码向 Selenium RC Server 发送 Http 请求的接口,支持多种语言,包括 Java、C# 和 Ruby 等。
Selenium V2.0
Selenium V2.0 的核心是 WebDriver,它利用的原理是:使用浏览器原生的 WebDriver 实现页面操作。
Selenium WebDriver 是典型的 Server-Client 模式,Server 端就是 Remote Server。
- Selenium 2.0 工作原理的解析
Selenium V3.0
Selenium V3.0 相比 V2.0 并没有本质上的变化,主要是增加了对 MacOS 的 Safari 和 Windows 的 Edge 的支持,并彻底删除了对 Selenium RC 的支持。
来源于:极客时间 茹炳晟 软件测试52讲