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