> 这是Selenium3.X源码分析系列第2篇
如果在搜索引擎随随便便搜索下: selenium 异常 会发现有大量的文章给你分享关于各种异常处理的内容,如下:
那这些异常类型在selenium源码中定义在哪,有哪些类型呢?如何掌握这些?从哪里找到它们?
如何学习编程?如何掌握写出优秀的代码?从阅读源码开始,应该是很多大牛推荐的姿势。
先看下selenium webdriver常见的异常:
下面我们看下这些异常在源码中的定义:
源码说明
在exceptions.py中,定义了selenium webdriver代码运行过程中可能出现的异常类型,也定义了selenium webdriver异常的基类及具体的异常代码。
在exceptions.py中,关于该模块的注释,说明了这些异常是webdriver代码执行过程中,可能抛出的异常,所以要深入了解和理解selenium webdriver异常就需要看这个模块了。
异常基类源码
这是selenium webdriver异常的基类,其他所有的异常均继承该类,__init__函数参数说明:
msg - 异常信息
screen - 异常截图
stacktrace - 异常堆栈信息
下面我们看一个具体的异常的实现代码,例如下面这个未找到元素的异常,即一般我们传入的元素定位数据是错的情况下:
大家如果去看源码,会发现这些具体的异常类,均为pass的空实现,为什么会这样呢?
这个问题就留给大家去看源码和理解继承的魅力了。
下面我们看下一个在selenium webdriver中具体捕获、抛出这些异常的源码,我随便找了个模块。