0
点赞
收藏
分享

微信扫一扫

Selenium3.X源码分析之异常源码


Selenium3.X源码分析之异常源码_android

> 这是Selenium3.X源码分析系列第2篇

        如果在搜索引擎随随便便搜索下: selenium 异常 会发现有大量的文章给你分享关于各种异常处理的内容,如下:

Selenium3.X源码分析之异常源码_python_02

那这些异常类型在selenium源码中定义在哪,有哪些类型呢?如何掌握这些?从哪里找到它们?

如何学习编程?如何掌握写出优秀的代码?从阅读源码开始,应该是很多大牛推荐的姿势。

先看下selenium webdriver常见的异常:

  • NoSuchElementException:没有找到元素
  • NoSuchFrameException:没有找到iframe
  • NoSuchWindowException: 没找到窗口句柄handle
  • NoSuchAttributeException: 属性错误
  • NoAlertPresentException:没找到alert弹出框
  • lementNotVisibleException:元素不可见
  • ElementNotSelectableException:元素没有被选中
  • TimeoutException:查找元素超时

下面我们看下这些异常在源码中的定义:

Selenium3.X源码分析之异常源码_python_03

源码说明

在exceptions.py中,定义了selenium webdriver代码运行过程中可能出现的异常类型,也定义了selenium webdriver异常的基类及具体的异常代码。

Selenium3.X源码分析之异常源码_java_04

在exceptions.py中,关于该模块的注释,说明了这些异常是webdriver代码执行过程中,可能抛出的异常,所以要深入了解和理解selenium webdriver异常就需要看这个模块了。

异常基类源码

Selenium3.X源码分析之异常源码_编程语言_05

这是selenium webdriver异常的基类,其他所有的异常均继承该类,__init__函数参数说明:

msg - 异常信息

screen - 异常截图

stacktrace - 异常堆栈信息

下面我们看一个具体的异常的实现代码,例如下面这个未找到元素的异常,即一般我们传入的元素定位数据是错的情况下:

Selenium3.X源码分析之异常源码_java_06

大家如果去看源码,会发现这些具体的异常类,均为pass的空实现,为什么会这样呢?

这个问题就留给大家去看源码和理解继承的魅力了。

下面我们看下一个在selenium webdriver中具体捕获、抛出这些异常的源码,我随便找了个模块。

Selenium3.X源码分析之异常源码_android_07

Selenium3.X源码分析之异常源码_java_08

在公众号里回复一下关键字获取对应的系列文章

物联网

appium

大数据测试

RobotFramework

Python

自动驾驶

jmeter

selenium

jenkins

接口测试

举报

相关推荐

0 条评论