说明:客户端库文件将命令传递给server。接着server使用selenium-core的javaScript命令传递给浏览器,浏览器会使用自带的javaScript翻译器来执行selenium命令。这意味着测试脚本中的selenium操做和验证将被执行。html
*:不少博客写的都很好,基本上能够直接参考学习(http://www.cnblogs.com/fnng/archive/2012/02/01/2335215.html)java
(1)同源规则web
在浏览器中打开的不一样界面不能相互做用。Selenium Server用来回避这一个问题,让浏览器觉得本身在server提供的单一站点上工做。浏览器
同源:相同的协议,端口,域名服务器
(2)代理注入架构
Selenium用来规避同源规则的第一种方法就是代理注入。框架
Selenium server 像客户端配置的HTTP代理同样工做,位于系统和浏览器之间。学习
浏览器启动时,使用配置的profile,其中已经设置localhost 4444做为HTTP代理,这就是为何来自浏览器的HTTP请求都会通过selenium server并且HTTP响应也来自selenium server而非真实的服务器。测试
(3)提升浏览器权限spa
高特权模式,它容许浏览器作一些一般不被容许的事情,如XXS。经过该模式,selenium core能够直接带卡待测系统,并读取和操做其中的内容,而不须要经过Selenium RC Server 来传递整个待测系统。
webdriver使用不一样的底层框架,Selenium 遥控器使用JavaScript的Selenium 核嵌入式已经在有必定的局限性的浏览器中。 webdriver直接交互而不与Selenium 远程控制,依赖于服务器上的任何中介的浏览器。