Selenium Webdriver 3.X源码分析之errorhandler.py

2019-10-14 15:59:12 浏览数 (1)

> Selenium Webdriver 3.X源码分析系列第14篇,该系列原则上会将整个源码分享一遍

在selenium webdriver自动化测试实践时,很多新手,甚至有一定经验的实践者,都会在面对不同的抛错/异常时,显得措手不及,无法下手,本文从源码层级对selenium webdriver中定义的错误编码进行分析,从而期望从根本上了解错误信息或编码的含义。

先看下错误编码及处理源码的定义模块的路径:selenium > webdriver > remote > errorhandle.py

其源码结构如下图所示:

下面我们对errorhandle.py源码进行逐一说明解释,以便大家进一步了解:

1. 导入已经定义好了的异常类,这些异常类均在selenium.common.exceptions下,对应了selenium webdriver各种可能出现异常情况,通过类名就应该掌握可能是哪些异常。

2. 字符串类型兼容处理,主要针对py2和py3的兼容做了异常处理,以应对selenium webdriver在py2和py3的兼容性

3. selenium webdriver异常编码处理,定义了具体的整数与对应的可读信息,一般来讲整数是给代码用的,可读的信息是给人看的。

例如,NO_SUCH_ELEMENT 这个错误编码,对应着整数7,可读文字为:no such element,中文含义为木有这个元素。看着这个可能是你的定位xpath或其他属性写错了,也可能是定位xpath是对的,但真不存在这个元素,

4. 错误处理类,用于处理selenium webdriver远程服务返回的错误信息,主要用于检查selenium webdriver 远程服务返回的错误信息是否为json格式,其字段是否标准,其值是否是预定的值,最后对返回的信息进行解析成可读性更好的格式,以增强实践过程解决问题的效率。

这个模块是比较简单的,主要是掌握以下几个点:

  1. 定义了哪些错误编码,这些是必须了解和掌握的,参加ErrorCode类即可
  2. 理解ErrorHandler类的机制和作用,进一步加深错误处理原理
  3. 将错误编码与日常实践时抛出的异常,错误信息进行对应,提升实战能力

0 人点赞