Selenium Webdriver 3.X源码分析之核心目录结构

2019-09-12 13:14:43 浏览数 (1)

这是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的源码没那么复杂,一点点来,后续的文章会一点点的深入到具体的代码细节。

0 人点赞