WebDriver简介
2025-10-05 11:42:15 南非世界杯排名WebDriver简介
WebDriver是一个支持对用户代理进行控制的远程控制接口,它提供了平台无关和语言无关的线路协议(wire protocol),作为跨进程程序远程控制web浏览器行为的方式,它提供了一组接口来发现和操作web文档中的DOM元素,以及控制用户代理(浏览器)的行为。它主要的意图是允许web的开发者可以单独在一个进程中编写自动化用户代理(浏览器)的测试,也允许使用上述方式,在浏览器内的脚本中对浏览器进行控制。
总而言之,WebDriver被W3C纳入标准,定义了对浏览器(也就是上文提到的用户代理)操作的一系列规范。W3C中的WebDriver规范是从Selenium WebDriver浏览器自动化框架中继承过来的,因为后者实在是太流行了以致于最终变成标准。
1、WebDriver协议的通信各方组成介绍
近端(local end):表示协议的客户端,通常是特定语言基于WebDriver协议提供的上层API接口。WebDriver规范并没有对这些提供API接口的库做任何的限制。
远端(remote end):表示协议的服务端,WebDriver规范主要是定义远端对WebDriver协议响应的行为。
对于远端,WebDriver规范定义了两种类型的节点,并且WebDriver的远端必须提供遵循HTTP的协议,末端节点会将HTTP协议映射到不同的命令上:
中间节点(itermediary node):中间节点扮演的是代理的角色,既要实现协议定义的远端功能也要实现协议定义的近端功能。这个比较容易理解,既然是代理,那相对于客户端来说它是服务端,因此要实现协议定义的远端功能;对于真正的服务端,它只是起到中转作用,相当于客户端,因此要实现协议的客户端。中间节点可能有多个(这个很很容易理解,网络传输节点有多个),因此并不是按照远端一步一步实现的,对于一个特定的中间节点,在它和近端之间的所有节点称作该节点的下行(下游?downstream),所有处于该节点和末端节点之间的节点称作该节点的上行(upstream)。
末端节点(endpoint node):表示最终的远端节点,末端节点通常是通过用户代理(例如浏览器)获相似的程序实现。
图示参考
2、WebDriver规范定义必须支持的能力集
WebDriver协议规定必须要支持的能力集如下(当然不同的浏览器或Driver实现可能还支持一些扩展的能力):
能力项
能力项命名
值类型
具体描述
浏览器名称
browserName
string
标识用户代理。
浏览器版本
browserVersion
string
标识用户代理的版本号。
平台名称
platformName
string
标识末端节点所在的操作系统名称。
接受不安全的TLS证书
acceptInsecureCerts
boolean
表明是否在会话过程中接受不可信或自签名的TLS证书。
页面加载策略
pageLoadStrategy
string
定义当前会话的页面加载策略,有三个选项:none、eager和normal。
代理配置
proxy
JSON Object
定义当前会话的代理配置。
窗口尺寸/定位
setWindowRect
boolean
表明远端是否支持所有的窗口调整和定位命令。
会话超时
timeouts
JSON Object
描述给定会话操作的超时
严格的文件互操作性
strictFileInteractability
boolean
描述当前会话严格的文件互操作性。
未处理的提示行为
unhandledPromptBehavior
string
描述当前会话的用户提示处理程序,默认是dismiss and notify state。
参考链接
WebDriver官方介绍链接