Selenium家族谱

1.Selenium1.0

Selenium1.0由Selenium IDE、Selenium Grid、Selenium RC组成。

Selenium IDE是嵌入在Firefox浏览器中的一个插件,可实现简单的浏览器操作的录制与回放功能。
Selenium Grid是一个自动化测试辅助工具,利用Grid可以方便地实现在多台机器上运行测试用例。
Selenium RC(Remote Control)是Selenium家族的核心部分,支持多种不同语言编写的自动化测试脚本;

Selenium RC分为Client Libraries 和 Selenium Server两部分,Client Libraries主要用于编写测试脚本,负责控制Selenium Server的库。Selenium Server负责控制浏览器行为

Selenium Server 只要分三部分:Selenium Core、Launcher和Http Proxy。
Selenium Core就是一堆JavaScript函数的集合;
Launcher用于启动浏览器,把Selunium Core 加载到浏览器页面当中,同时把浏览器的代理设置为Http Proxy;
Http Proxy用于代理设置;

2.Selenuim2.0

Selenium2.0 = Selenium1.0 + WebDriver;
WebDriver是通过原生浏览器支持或者浏览器扩展来直接控制浏览器,而Selenium RC是在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript翻译器来翻译和执行selense的。selense是selenium命令集合
_

3.Selenium3.0

Selenium3.0去掉了Selenium RC,即Selenium3.0 = Selenium2.0 - Selenium RC

Selenium IDE

Selenium IDE (Integrated Development Environment 集成开发环境) 是用来开发 Selenium 测试用例的工具. 这是一个易于使用的 Chrome 和 Firefox 浏览器扩展, 通常是开发测试用例最有效率的方式. 它使用现有的 Selenium 命令记录用户在浏览器中的操作, 参数由元素的上下文确定

Grid

Selenium Grid允许您在不同平台的不同机器上运行测试用例.
工作原理:
当测试用例需要验证的环境比较多,可以通过Grid控制测试用例在不用的环境下运行,Grid主节点可以根据测试用例中指定的平台配置信息把测试用例转发给符合条件的代理节点

selenium工作原理

webdriver协议 :实质上就是一种http协议,但是它基于一种严格的json协议JSON Wire protocol
浏览器驱动:各个浏览器都对应着不同的驱动,比如谷歌的chromedriver.exe

工作原理:
1.客户端执行selenium脚本,向浏览器驱动的web server发送http请求并开始监听端口
2.浏览器驱动中的web server根据请求,并创建一个sessionid,且在后续操作浏览器中都带上这个sessionid
3.浏览器解析请求做出相应操作,返回response给客户端