Selenium RC 与 Web Driver 的区别

来源:互联网 发布:淘宝类目宝贝数量查询 编辑:程序博客网 时间:2024/06/01 08:50

由于水平有限,没有做深入研究。 如有错误之处,欢迎指正。


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,使用简单方便,是一个不错的工具。

 

 

 

原创粉丝点击