早在2017年,写了系列Python Selenium2代码实例系列,,打算针对Selenium3写个系列,从源码分析开始,但不立flag,写到哪算哪。
为什么要写Selenium3.X系列了?掌握代码已经是基础功底,所以从源码开始掌握和理解显得更加重要,而当前各种文大都停留在简单的应用缺乏成体系的从源码分析Selenium系列文章,加上也很久没看Selenium Python端源码了,借着阅读源码的过程写点文章分享下。
Selenium是什么? Selenium自动化浏览器。就是这样!你如何运用这种力量完全取决于你自己。它主要用于自动化web应用程序以进行测试,但当然不限于此。无聊的基于web的管理任务也可以(而且应该)自动化。Selenium得到一些最大的浏览器供应商的支持,这些供应商已经(或正在)采取步骤使Selenium成为他们浏览器的本地部分。它也是无数其他浏览器自动化工具、api和框架中的核心技术。 https://www.seleniumhq.org
为什么还要学习Selenium?
笔者以为,深入理解和掌握Selenium是你遨游在自动化测试领域的核心基础能力!!!
在开始进行Python Selenium3.x源码分析前,需要做几个准备工作:
- 安装Python3 参见 [快学Python3]环境安装
- Visual Studio Code 一个好的IDE是必备的,可以参见基于Visual Studio Code搭建Python开发环境
- 安装或更新至最新的Selenium版本,命令如下:
> pip install selenium -U
使用以下命令查看当前selenium版本等相关信息
> pip show selenium
先看下Selenium Python端API目录结构,如下图所示:
- common 定义了通用的异常类
- webdriver 核心实现
将上面的目录展开下,如下图所示:
- common/exceptions.py 定义了所有可能在webdriver代码中出现的异常
- webdriver/android
webdriver/blackberry
webdriver/chrome
webdriver/edge
webdriver/ie
webdriver/firefox
webdriver/opera
webdriver/safari
webdriver/iewebkitgtk
上述各目录定义了各浏览器兼容的代码,即用于支持不同的浏览器
- webdriver/common 定义了webdriver所指定的通用能力
- webdriver/remote 定义了webdriver核心能力
- webdriver/support 定义了webdriver辅助能力
>>>>>>未完待续,欢迎转发、分享<<<<<<