前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Selenium Webdriver 3.X源码分析之remote_connection.py

Selenium Webdriver 3.X源码分析之remote_connection.py

作者头像
苦叶子
发布2019-10-14 15:58:44
6210
发布2019-10-14 15:58:44
举报
文章被收录于专栏:开源优测开源优测
> Selenium Webdriver 3.X源码分析系列第13篇,该系列原则上会将整个源码分享一遍

在Selenium Webdriver如何和Selenium Server进行http交互呢?在本文要分析的remote_connection模块就要呈现最核心的交互代码了,是必须深入理解的。

我们先看下该模块定义的RemoteConnection类中注释说明,如下:

该类实现了用于与远程Webdriver服务进行交互的HTTP连接。

下面我们对该类进行详细的分析说明,模块路径为selenium > webdriver > remote > remote_connnection.py

先看下需要依赖哪些库,如下所示:

1. 需要标准库base64转码、logging日志、platform平台、socket、string、urllib3这个最重要,用于http交互

2. 对于不用的py版本,在26-29行代码做了兼容判断

3. 31-35行导入了selenium webdriver自定义的一些能力

接下来看看remote_connection类定义了哪些方法、成员:

  1. LOGGER为全局的日志实例对象
  2. _timeout 全局超时时间
  3. __init__ 初始化函数
  4. set_timeout 设置全局超时时间
  5. reset_timeout 重置全局超时时间
  6. get_timeout 获取全局超时时间
  7. get_remote_connection_headers 获取远程连接http headers信息
  8. execute 调用_request发送指令至remote服务器
  9. _request 内部函数,用于发送http请求

下面我们详细看看__init__函数:

下面看下execute函数,该函数用于执行指令集,即通过http请求将selenium webdriver指令发送给远程服务。

下面看下_request函数,该函数是对urllib3的封装,简单理解一个http client即可,用于与webdriver远程服务进行http交互,通过json进行数据交互,不复杂,大家自行深入掌握即可

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档