Selenium RC 与 Web Driver 的区别

   刚刚在一个博客上看到了说这两个自动化框架的区别,虽然不全,感觉还是有点儿道理的,就复制过来了,我会附加上原博文的链接的:http://blog.csdn.net/caiqcong/article/details/8537406
作者不要见怪哟,我不会偷窃你的成果的!!Selenium <wbr>RC <wbr>与 <wbr>Web <wbr>Driver <wbr>的区别

Selenium RC 工作原理:

1.      RC server 在服务端启动 浏览器 并将Core 注入到浏览器中 (为了解决浏览器的同源策略)

2.      我们的测试脚本调用Client API,Client将操作转化成标准的selenese语句发送给RC Server。

3.      Selenium Core 解释selenese 语句,通过js的方式操作浏览器。


Web driver 工作原理:

1.      WebDriver 启动目标浏览器,并绑定到指定端口。该启动的浏览器实例,做为web driver的remote server。

2.      Client 端通过CommandExcuter 发送HTTPRequest 给remote server 的侦听端口(通信协议: the webriver wire protocol)

3.       Remote server 需要依赖原生的浏览器组件(如:IEDriver.dll,chromedriver.exe),来转化转化浏览器的native调用。

 

那么remote server端的这些功能是如何实现的呢?答案是浏览器实现了webdriver的统一接口,这样client就可以通过统一的restful的接口去进行浏览器的自动化操作。目前webdriver支持ie, chrome, firefox, opera等主流浏览器,其主要原因是这些浏览器实现了webdriver约定的各种接口。

 

对于优缺点:

1.      RC 需要启动一个 RCserver,就直观感觉上多了一个步骤。

2.      RC 采用js 的方式,稳定性和兼容行方面还是取决与js的代码的质量。有时需要自己去写js代码来扩展相应的功能。由于自己是从RC用起的,对于RC js的方式还是比较接受,感觉比较灵活。

3.      至于弹出对话框和警告框的处理,RC原生是不支持的。不过可以通过第三方软件来解决,比如autoit。我用的就是autoit,使用简单方便,是一个不错的工具。

 

其实还有个网页,讲这方面讲的更多,由于内容太多了,就不复制了,直接贴上链接吧:

Selenium VS Webdriver:http://www.ibm.com/developerworks/cn/web/1309_fengyq_seleniumvswebdriver/index.html

posted @ 2014-02-07 18:14  潜龙9527  阅读(163)  评论(0编辑  收藏  举报