> Selenium Webdriver 3.X源码分析系列第12篇,该系列原则上会将整个源码分享一遍
在了解command.py的源码前,我们先大致的了解下webdriver json wire protocol的基本知识。
基本概念:
所有与浏览器或RemoteWebDriver服务器通信的WebDriver实现都应该使用Webdriver Json Wire Protocol。这个连接协议使用HTTP上的JSON定义了一个RESTful web服务。
注意点:
所以从理论上,只要遵循webdriver json wire protocol协议,使用任何一门编程语言都可以进行web自动化测试。
在本文,我们接下来看看在selenium webdriver python端的源码,看看其相关的指令定义源码:
代码路径为:selenium > webdriver > remote > command.py
注意源码中的注释,这里大体如下:
在command.py中,提供了以下几类指令:
- 最核心的指令集,常规的浏览器、元素定位等等操作均定义在此
- alerts指令集,标准弹窗处理的指令
- 高级用户交互指令集,鼠标动作指令集
- 屏幕采集指令集,获取、设置屏幕指令
- 触摸指令集,触摸屏操作动作集
- HTML5指令集,html5支持指令集,得看具体的selenium版是否实现支持
- 移动指令集
都是些常量定义,又必要了解嘛?当然有必要,因为这些常量在其他地方都会用到,在remote_connection.py中,构建交互command时,如下
未完待续,持续更新中......