selenium源码解读(二)remote,version 3.14.1
因为所有浏览器都是基于remote中的webdriver,所以先分析remote

其中command包含为webdrive命令定义常量,虽然这些常量本身没有意义,但它们用于通过实现 WebDriver 远程线路协议

remote_connection:主要是和远程webdriver服务器建立连接,然后通过接口形式发送请求来进行相应的命令操作,这里远程服务器其实就是指本机地址,客户端就是我们的代码,中间是通过webdriver wire protocol来进行通信

webdriver:通过发送命令到远程服务器来控制浏览器操作;其实就是创建了一个remote_connection对象来形成自己的excecute方法,进而实现一系列操作,包括get获取url,和一些定位元素的操作

webelement:其实也是通过创建一个remote_connection对象来实现自己的_excecute方法,其中包含只是对页面元素的各种操作,而remote.webdriver中包含的是和协议中一一对应的各种操作

utils.py:包含一些辅助功能的函数,比如转换为json格式,转换为字典格式,解压

switch_to.py:主要包含页面的切换操作,切换到窗口,切换到默认的frame,切换到任意frame,切换到警告页

mobile.py:设置远程设备连接

file_detector.py:用于识别字符序列是否代表文件路径

errorhandler.py:定义远程服务端(浏览器驱动)应答出现的异常


本文详细剖析了Selenium 3.14.1版本中remote模块的工作原理,涉及remote_connection与WebDriver Wire Protocol,通过实例展示如何通过remote控制浏览器操作,包括切换页面、元素操作和错误处理等内容。

被折叠的 条评论
为什么被折叠?



