Selenium1.0:
selenium1.0由3部分组成
- selenium IDE
Selenium IDE仅作为Firefox和chrome插件提供,它无法在Firefox和chrome以外的浏览器上记录测试用例。记录的测试脚本也可以导出到C#,Java, Python等编程语言 - Selenium Grid
允许Selenium RC针对规模庞大的测试案例集或者需要在不同环境中运行的测试案例集进行扩展,用于实现分布式测试。利用Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。 - Selenium RC
rc是remote control 的缩写,它的功能就是用来模拟一个浏览器
利用selenium的代理服务器来实现访问浏览器实现自动化测试。
其中:selenium RC分为:Client和Selenium Server。
client实现自动化脚本,Selenium Server负责控制浏览器行为
Selenium Server分为3部分。
- Launcher:启动浏览器
- Http Proxy:selenium Server的Http代理
- Selenium Core:嵌入到浏览器的js代码。
由Launcher启动浏览器,将Selenium core嵌入到浏览器当中,并把浏览器代理设置为selenium Server的Http Proxy以访问应用,Selenium Core是js函数的集合,用来操作浏览器
slenium 1.0使用的是Javascript注入技术与浏览器打交道,需要SeleniumRC启动一个Server,将操作Web元素的API调用转化为一段段Javascript,在Selenium内核启动浏览器之后注入这段Javascript。开发过Web应用的人都知道,Javascript可以获取并调用页面的任何元素,自主的进行操作。由此才实现了Selenium的目的:自动化Web操作。这种Javascript注入技术的缺点是速度不理想,而且稳定性大大依赖于Selenium内核对API翻译成的Javascript质量高低。
Selenium 2.0:
Selenium2.0=Selenium1.0+WebDriver
selenium 1.0中selenium RC替换为了WebDriver
基于调用WebDriver Api来模拟用户操作
WebDriver速度更快,因为它直接交互使用的浏览器
WebDriver还支持android和iOS上的浏览器。
支持多种编程语言
Selenium 3.0:
去掉了Selenium RC 的支持
全面拥抱java8
支持macOS(Sierra or later),支持官方的safarideriver
通过ms官方的webdriver server支持Edge浏览器
只支持ie 9.0版本以上
通过Mozilla 官方的geckodriver来支持firefox