selenium框架是目前基于web自动化的开源自动化工具。它能提供一系列函数,自动化模拟浏览器的各式各样的操作。

1,支持多浏览器:firefox,chrome,IE,Safari等

2,支持多种脚本语言:PHP,python,java,c#,ruby等

3,支持多操作系统:linux,ios,android,windows

以下为selenium suite的结构简图:

 

1,selenium IDE。其实是firefox浏览器上的一个插件,支持通过界面进行录制,并将录制内容翻译成自动化测试脚本(使用selenium的一系列函数)。对没有编程经验的人来说,可以不需要手写具体脚本。

目前使用较少。

2,selenium RC作为框架中的核心部分,支持许多语言的自动化测试脚本。并通过自身的服务器去调用代理服务器执行浏览器操作。

  • SeleniumRC分为ClientLibrariesSeleniumServer
  • ClientLibraries主要封装了调用SeleniumServer库方法的方法函数,便于脚本编写。
  • SeleniumServer引用了SeleniumRemoteServer这样一个代理服务器。SeleniumServer分为 Launcher,Http Proxy,Core(本质上就是一个JS函数集合)。javaScript脚本注入和 与远程Server通讯都通过SeleniumRC Server实现。

Selenium RC使用的是JavaScript注入技术与浏览器打交道,需要Selenium RC启动一个Server,将操作Web元素的API调用转化为一段段Javascript,在Selenium内核启动浏览器之后注入这段Javascript。这种Javascript注入技术的缺点是速度不理想,而且稳定性大大依赖于Selenium内核对API翻译成的Javascript质量高低。

3,Webdriver 

然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了Selenium WebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的FirefoxDriver,Chrome就有专门的ChromeDriver等等。