> 这是Selenium3.X源码分析系列第3篇

在看Selenium 3.X核心目录结构前,我们先看一个基础的Selenium使用实例

请注意上述代码中,匡红的导入部分,为什么可以从selenium模块导入webdriver呢?

下面看下Selenium核心代码部分的目录结构,如下图所示:

通过目录结构,我们知道了from selenium import webdriver是对外导出了webdriver这个package。

而webdriver package下的__init__.py对外导出了各种平台(浏览器)能力的支持。

这样在前面的实例中就有了如下的代码调用调用Chrome浏览器进行测试:

所以结合两者,对于不同的浏览器调用我们可以这样如下进行了:

- 调用Firefox浏览器进行测试,关键代码片段为:

webdriver.Firefox()

- 调用Ie浏览器进行测试,关键代码片段为:

webdriver.Ie()

- 调用Edge浏览器,关键代码片段为:

webdriver.Edge()

其他浏览器类似,只需要调用对应的平台(浏览器,注意需要有对应的驱动支持,参见:Python Selenium Webdriver安装手册 其中的驱动配置章节)即可。

下面我们就webdriver目录下的文件和目录进行基本的说:

- android  android浏览器支持

- blackberry blackberry平台支持

- chrome 谷歌浏览器支持

- common webdriver通用能力

- edge 微软最新的edge浏览器支持,一般要windows10及以上平台比较好

- firefox 火狐浏览器支持

- ie 微软ie浏览器支持,注意ie和edge是两个不同的浏览器

- opera opera浏览器支持,可能很多人没见过这个,很出名的

- phantomjs 内存模式可以渲染解析js、css、html,可以快速运行

- remote webdriver核心功能模块

- safari  apple下的浏览器支持

- support webdriver一些辅助能力

- webkitgtk  一般不怎么用

- __init__.py  对外导出了webdriver的能力

总结下,这个目录结构应该是必须掌握的,了解了这些目录和文件的作用,你就会发现其实阅读selenium webdriver的源码没那么复杂,一点点来,后续的文章会一点点的深入到具体的代码细节。

扫一扫加我微信,注明:入群,加入微信群

扫一扫关注开源优测公众号,原创文章首发平台

在公众号里回复一下关键字获取对应的系列文章

物联网 appium 大数据测试 RobotFramework Python
自动驾驶 jmeter selenium jenkins 接口测试

顺手点点点右下角的

导出目录结构_Selenium Webdriver 3.X源码分析之核心目录结构相关推荐

  1. live555 源码分析:RTSPServer 组件结构

    前面几篇文章分析了 live555 中 RTSP 的处理逻辑,RTSP 处理有关组件的处理逻辑有点复杂,本文就再来梳理一下它们之间的关系. live555 中 RTSP 处理有关组件关系如下图: 事件 ...

  2. uCOS2源码分析3-RTOS核心代码视频课程-第4季第4部分-朱有鹏-专题视频课程

    uCOS2源码分析3-RTOS核心代码视频课程-第4季第4部分-1077人已学习 课程介绍         本课程是<朱有鹏老师单片机完全学习系列课程>第4季第4个课程,本课程我们重点分析 ...

  3. F2FS源码分析系列文章目录

    一.文件系统布局以及元数据结构 总体结构 Superblock区域 Checkpoint区域 Segment Infomation Table区域(SIT) Node Address Table区域( ...

  4. Nginx源码分析:核心数据结构ngx_cycle_t与内存池概述

    nginx源码分析 nginx-1.11.1 参考书籍<深入理解nginx模块开发与架构解析> 核心数据结构与内存池概述 在Nginx中的核心数据结构就是ngx_cycle_t结构,在初始 ...

  5. 【嵌入式】Libmodbus源码分析(一)-类型和结构体

    00. 目录 文章目录 00. 目录 01. 常见类型声明 02. 常量声明 03. _modbus结构体声明 04. modbus_backend_t结构体声明 05. modbus_mapping ...

  6. GCC源码分析(十四) — rtx结构体,指令与栈分配

    版权声明:本文为CSDN博主「ashimida@」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/lidan1 ...

  7. mysql源码分析——InnoDB的内存结构源码

    一.说明 本来是想在前面的一篇分析中把源码和内容同时过一遍,可突然发现,那可能是非常大的一章.所以就把源码独立了出来,在此章节中对相关四类内存数据结构进行分析,在代码分析过程中,可以和前面的说明以及早 ...

  8. php源码哪些文件是主程序,ThinkPHP源码分析之核心类文件的加载

    研究了下TP的加载机制,以下是我的一些总结: 1.首先由应用入口文件index.php引入TP入口文件ThinkPHP.php 2.ThinkPHP.php里主要是定义一些系统常量,URL模式定义,系 ...

  9. 集合框架源码分析六之堆结构的实现(PriorityQueue)

    /** * * 优先队列是用了一种叫做堆的高效的数据结构, * 堆是用二叉树来描述的,对任意元素n,索引从0开始,如果有子节点的话,则左子树为 * 2*n+1,右子树为2*(n+1). * 以堆实现的 ...

最新文章

  1. 太赞了!机器学习基础核心算法:贝叶斯分类!(附西瓜书案例及代码实现)
  2. 二值化网络如何训练?这篇ICML 2021论文给你答案
  3. MutationObserver 监听DOM树变化
  4. 经典C语言程序100例之六四
  5. 【Linux系统编程】线程私有数据
  6. Apache Kylin VS Apache Doris
  7. c语言实现点在多边形内部,求教这个判断点是否在多边形内的C语言算法用的什么原理....
  8. 敏捷开发一千零一问系列之十八:长期受制于强势客户怎么办?(下)
  9. bootstrap 输入错误提示_网上体育用品商城(ssm,mysql,bootstrap,html,css)
  10. 双层板在哪层覆铜_2020年中国印制电路板行业发展现状及发展趋势预测(图)...
  11. 【2020年度合辑】人工智能量化实验室原创推送合辑
  12. Android四大组件之间的交互,Android四大组件每个组件的作用?它们都可以开启多进程吗?...
  13. python绘图中文_Python绘图实现显示中文
  14. Mac电脑删除某个分区
  15. PyTorch笔记 - Dropout: A Simple Way to Prevent Neural Networks from Overfitting
  16. VMware 15.5.7 的下载与安装
  17. 图片大大了怎么修改大小KB不改变尺寸
  18. hibernate学习之四——Query和Criteria接口
  19. 动态规划--基本思路理念
  20. freebsd服务器维护,China FreeBSD

热门文章

  1. mysql最大并行用户设置_mysql 优化配置
  2. SQL语言之DQL语言学习(八)多表查询/链接查询 SQL92学习
  3. 大数据实训记录(二)
  4. 关于 ESP,EBP,EIP
  5. mysql 创建删除表_mysql创建删除表的实例详解
  6. Python初学的几个迷惑点
  7. Python urllib与requests、XML和HTMLParser
  8. mysql grant 不想让用户看到 系统默认 mysql_MYSQL用户权限管理GRANT使用
  9. 2020年电大c语言程序设计作业1答案,2019年最新电大C语言程序设计作业答案.doc
  10. Python flask出现jinja2.exceptions.TemplateNotFound错误(修复host就好了???)