webdriver实质要点:一套基于REST(json格式)的webdriver wire 协议完整规范,规范抽象出如何实现浏览器的各项操作(打开关闭、元素定位操作、插件安装、文件下载上传等)
webdriver具体实现:不同平台不同的浏览器分别就 1. 中所说的webdriver wire协议规范,以浏览器原生组件的形式,实现对webdriver接口调用到浏览器原生本地调用的转化,达到直接利用浏览器原生支持接口来操作浏览器的目的。eg:firefox的webdriver.xpi,IE的IEDriver.dll等
webdriver角色形象:如同一个代理服务器(接受客服端的请求,转换为REST(json格式),由浏览器发送到web服务器,接受web服务器响应,转换为REST(json格式),再由浏览器展示结果)
webdriver实例化过程要点:
基于具体的浏览器实例化webdriver,以webdriver.firefox()为例:包括检查初始化webdriver的具体组件实现如浏览器组件webdriver.xpi、初始化firefox profile(默认配置)、remote webdriver的初始化、启动firefox实例、分配独立sessionid、建立httpconnect连接服务等
每次通过webdriver启动firefox都建立一个独立的sessionid,支持多线程并行处理等
类HttpCommandExecutor具体实现有一个简单字符串形式的操作命令到REST形式httprequest转换
webdriver应用要点:主要是webelement的定位、操作,page object模式算是最佳实践