Selenium3源碼之異常模塊篇
Selenium3 Python3源碼分析系列以短文方式進行分享
閱讀源碼是掌握Selenium的最好方式
我的公眾號:開源優測
Selenium3源碼之異常模塊篇
簡介
本文分析Selenium3源碼中關於異常處理的通用代碼,要分析的代碼位置如下(路徑為:***python3/lib/site-packages/selenium/common/exceptions.py):
這裡我源碼做了摺疊以便大家看下,只截取部分圖如下:
在模塊中共30餘個異常類,本文不會一一說明,所有的類,請自行去看源碼學習。
webdriver異常基類
類WebDriverException是webdriver所有異常類的基類,其繼承自Python中的Exception基礎類。下面將直接在源碼中對代碼進行注釋說明:
## 定義WebDriverException類,繼承Exception
classWebDriverException(Exception):""" Base webdriver exception. webdriver異常基類 """# __init__函數,初始化用def__init__(self,msg=None,# 異常信息screen=None,# 異常快照stacktrace=None):# 堆棧跟蹤信息self.msg=msg self.screen=screen self.stacktrace=stacktrace
# 把類實例轉換成字元串類型def__str__(self):# 格式化異常信息exception_msg="Message: %s
"%self.msg
# 判斷是否存在異常快照信息,有則拼接到格式化字元串ifself.screenisnotNone:exception_msg+="Screenshot: available via screen
"# 判斷是否存在堆棧跟蹤信息,有則拼接到格式化字元串ifself.stacktraceisnotNone:stacktrace="
".join(self.stacktrace)exception_msg+="Stacktrace:
%s"%stacktrace# 返回格式化後的異常信息returnexception_msg
webdriver服務端異常類
ErrorInResponseException類是webdriver服務端拋出異常時處理
# 繼承自WebDriverException基類
# 當webdriver遠程服務出現異常時,拋出該異常
classErrorInResponseException(WebDriverException):""" Thrown when an error has occurred on the server side. This may happen when communicating with the firefox extension or the remote driver server. """def__init__(self,response,msg):WebDriverException.__init__(self,msg)self.response=response
其他異常
其他異常基本如下圖所示的樣式:
主要有這些異常:
註:這些異常你應該都要熟悉的理解,以便在實際自動化測試過程中快速定位問題並解決問題
TAG:開源優測 |