首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Selenium3.X源码分析之异常源码

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

作者头像
苦叶子
发布2019-09-05 16:59:25
5380
发布2019-09-05 16:59:25
举报
文章被收录于专栏:开源优测开源优测

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

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

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

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

先看下selenium webdriver常见的异常:

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

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

源码说明

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

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

异常基类源码

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

msg - 异常信息

screen - 异常截图

stacktrace - 异常堆栈信息

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档