刚刚在一个博客上看到了说这两个自动化框架的区别,虽然不全,感觉还是有点儿道理的,就复制过来了,我会附加上原博文的链接的:http://blog.csdn.net/caiqcong/article/details/8537406
作者不要见怪哟,我不会偷窃你的成果的!!
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,使用简单方便,是一个不错的工具。
其实还有个网页,讲这方面讲的更多,由于内容太多了,就不复制了,直接贴上链接吧: