1 什么是Selenium?
Selenium automates browsers. 它可以让基于web的应用测试自动化,也可以让一些基于web的管理自动化。
2 Selenium的四大项目
- Selenium WebDriver(Selenium 2.0 )
Selenium WebDriver能够通过原生浏览器的支持来控制本地的或者远程的browser。 - Selenium Grid
Selenium Grid通过扩展Selenium Remote Control,可以并行在多台server上面运行测试用例。 - Selenium IDE
Selenium IDE是基于Firefox的插件,可以简单的录制和回放测试脚本。 - Selenium Remote Control(Selenium 1.0 )
Selenium RC是基于Client/Server的系统,允许控制本地的远程的计算机。
2.1 Selenium RC原理
Selenium RC包括两部分:
- Selenium服务器:负责启动和关闭浏览器,扮演着HTTP代理的角色,截获和验证在浏览器和被测试应用程序之前的HTTP消息。
- Selenium客户端:提供各种编程语言与Selenium RC服务器之间的接口
当测试程序打开浏览器的时候,Selenium RC服务器会将Selenium Core注入到浏览器中。
Selenium Core是JavaScript程序,用于调用浏览器内置的JavaScript解释器,以解释和执行从测试程序传来的Selenese命令。
该服务器也可以接受来自测试程序的HTTP GET/POST请求的Selenese命令。
2.2 Selenium WebDriver原理
Selenium WebDriver是针对各个浏览器而开发的,是通过原生浏览器支持或者浏览器扩展而直接控制浏览器。
2.3 Selenium RC和Selenium WebDriver对比
- WebDriver提供一套友好的API,更加容易理解和使用,可读性和可维护性大大提高
- WebDriver不需要启动其它进程或安装其它程序,不需要想RC需要先启动服务
- 二者技术方案不同。RC是采用注入Javascript方式,WebDriver是基于浏览器原生支持,避免了JavaScript安全模型的限制。所以他们支持的browser情况也不一样。
- WebDriver采用面向对象的编程,而RC其编程方式更像是面向过程的
3 Selenium第三方Driver和Plugin
- ChromeDriver - WebDriver for Chrome :https://sites.google.com/a/chromium.org/chromedriver/
利用ChromeDriver提供的原生接口,WebDriver可以控制Chrome浏览器 - Appium : http://appium.io/
Appium可以使用 Selenium提供的方法来对Browser进行自动化 - Others :Selenium IDE Plugins
注意:这些第三方的插件都不是由Selenium来开发和维护的。