在了解command.py的源码前,我们需要先了解下webdriver json wire protocol的基础知识。
基本概念:
所有与浏览器或RemoteWebDriver服务器通信的WebDriver实现都应该使用Webdriver Json Wire Protocol。这个连接协议使用HTTP上的JSON定义了一个RESTful web服务。
注意:
这是所有webdriver客户端实现的基础协议,所有语言都遵循该协议与远程服务进行交互
该协议基于http协议,采用json格式进行数据交换
该协议已经实现为一套公共的RESTful web服务
所以从理论上,只要遵循webdriver json wire protocol协议,使用任何一门编程语言都可以进行web自动化测试。
在本文,我们接下来看看在selenium webdriver python端的源码,看看其相关的指令定义源码:
注意源码中的注释,这里大体如下:
标准的webdriver指令定义
指令常量本身是没有任何意义的,其意义取决于对应的webdriver服务的实现,即指令需要有对应的服务实现才会有意义
在github对应地址为:[https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol]
在command.py中,提供了以下几类指令:
- 最核心的指令集,常规的浏览器、元素定位等等操作均定义在此