本文所讲的Selenium是指Selenium Webdriver
Selenium WebDriver与RC的功能相同,并且包含原始的1.x绑定。它涉及语言绑定和单个浏览器控制代码的实现。这通常被称为“WebDriver”,有时也被称为Selenium 2。
Selenium 1.0 + WebDriver = Selenium 2.0
- WebDriver被设计在一个更简单和更简洁的编程接口中,同时解决了Selenium-RC API中的一些限制。
- 与Selenium1.0相比,WebDriver是一个紧凑的面向对象的API
- 它更有效地驱动浏览器,并克服了Selenium 1.x的限制,这影响了我们的功能测试覆盖范围,如文件上传或下载,弹出框和对话框
- WebDriver克服了Selenium RC的单一主机起源策略的限制
在用Selenium进行自动化测试时必须引入相应jar包,比如selenium-server-standalone-2.46.0.jar,selenium-java-2.47.1.jar,3+以上版本可能有所不同,我们看到有个sever这么一个jar包,这个jar包就是Selenium服务,server端可以是任何浏览器作为remote server,职责就是处理client的请求并作出相应操作,response的具体内容根据请求的内容而定,client就是我们运行的脚本,我们以firefox为例,如下图所示
remote server端的这些功能是如何实现的呢?
浏览器实现了webdriver的统一接口,client就可以通过统一的restful的接口去进行浏览器的自动化操作。
目前webdriver支持ie, chrome, firefox等主流浏览器,其主要原因是这些浏览器实现了webdriver约定的各种接口。