Selenium异常简介
异常(Exception)是在程序执行过程中发生的未预期的事件。发生异常时,正常程序的执行将停止,并执行相应的异常处理逻辑。如果没有异常处理程序来处理该特定异常,程序将返回引发异常的调用函数,最终导致程序或者线程终止。
由于Selenium测试自动化是在不同的目标平台、设备和浏览器上执行的,测试代码的行为可能会因浏览器类型或浏览器版本不同而有所差别。例如,某些属性可能是浏览器特定的,并且如果在执行自动浏览器测试的浏览器中不存在特定属性,则会引发异常。通用属性名称也可以是特定于浏览器的,如果目标浏览器上没有相同的属性,则可能导致Selenium异常,例如常见的NoSuchAttributeException。
正确捕获/处理异常是一个好习惯,因为未处理的异常会导致程序失败而终止,从而最终影响终端用户体验。异常对象包含有关异常类型,调用堆栈和异常信息等内容,这些信息将有助于调试并使代码更可靠。
Selenium异常分类
Selenium异常分为两大类:已检查的异常和未检查的异常。这些异常根据捕获异常的时间(即编译时或运行时)进行分类。
Checked Exceptions
Selenium测试自动化中的已检查异常是在测试代码实现过程中处理的,例如前面提到的NoSuchAttributeException等,已检查异常的处理发生在编译代码时。
如果某些方法引发了检查的异常,则最好定义一个处理该特定异常的处理逻辑代码。
Unchecked Exceptions
Selenium测试自动化中未检查的异常会在运行时发生,并且比检查异常会产生严重的影响。例如ElementNotVisibleException、MoveTargetOutOfBoundsException等。
与浏览器自动测试相关的场景中,经常会遇到未经检查的异常,因为这些测试涉及浏览器和操作系统的不同组合和版本,包括网络和异步加载等因素都会导致未检查异常的发生。
Selenium异常备忘单
在本地浏览器或远程Selenium平台上执行自动浏览器测试时,测试人员会遇到很多类型的异常。一些Selenium异常特定于用于编写Selenium测试自动化方案的编程语言。
常见的Selenium异常
以下是所有