selenium3 & python3 常用断言及异常处理(完整篇)

今天我们来聊一聊 异常断言

异常

常见异常类型

序号异常描述
1)BaseException所有异常类的基类(python2.5之后)
2)Exception所有异常类的基类,继承BaseException
3)AssertionErrorassert语句失败
4)AttirbuteError试图访问未知的对象属性
5)FileNotFoundError试图打开一个不存在的文件或目录
6)AttributeError试图访问的对象没有属性
7)OSError当系统函数返回一个系统相关的错误(包括I/O故障),如“找不到文件”或“磁盘已满”时,引发此异常
8)NameError使用一个还没赋值对象的变量
9)IndexError当一个序列超出范围时引发此异常
10)KeyError试图访问你字典里不存在的键
11)IOEError输入输出异常,基本是无法打开文件
12)ImportError无法引入模块或者包,基本是路径问题
13)SyntaxError当解析器遇到一个语法错误时引发此异常
14)KeyboardInterrupt按下组合键Ctrl+C,程序被强行终止
15)TypeError传入的对象类型与要求不符
16)VauleError传入一个不被期望的值,即使类型正确

异常用法

1.try–except–else

except异常执行,else非异常执行

try:
    print(a)
except NameError as msg:
    print(msg)
else:
    print("没有异常时执行")

输出结果为:name ‘a’ is not defined

2.try–except–finally

except异常执行,finally正常异常都执行

try:
    print(a)
except NameError as msg:
    print(msg)
finally:
    print("不管是否出现异常,都会被执行")

输出结果为:
name ‘a’ is not defined
不管是否出现异常,都会被执行

抛出异常

raise关键字
>>可用来抛出一个异常信息。
>>只能使用Python提供的异常类。
>>如果想要raise使用自定义异常类,则自定义类需要继承Exception类

def say_hello(name=None):
   # name为空,抛出异常
    if name is None:
        raise NameError('"name" cannot be empty')
    else:
        print("hello,  %s" % name)

if __name__ == '__main__':
    say_hello()

运行结果,如下:
在这里插入图片描述

断言

断言的三种模式

selenium提供了三种模式断言:
assert
>>Assert(断言) 失败时,该测试将终止。
verify
>>Verify(验证) 失败时,该测试将继续执行,并将错误记入日志显示屏 。
waitfor
>>Waitfor(等待) 用于等待某些条件变为真,若为真,则立即执行,若为假,则失败且暂停。一般跟SetTimeout时间一起用。

常用的断言方法

序号断言描述
1)assertLocation判断当前是在正确的页面
2)assertTitle检查当前页面的 title 是否正确
3)assertValue检查 input 的值, checkbox 或 radio,有值为”on”无为”off”
4)assertSelected检查 select 的下拉菜单中选中是否正确
5)assertSelectedOptions检查下拉菜单中的选项的是否正确
6)assertText检查指定元素的文本
7)assertTextPresent检查在当前给用户显示的页面上是否有出现指定的文本
8)assertTextNotPresent使检查在当前给用户显示的页面上是否没有出现指定的文本
9)assertAttribute检查当前指定元素的属性的值
10)assertTable检查 table 里的某个 cell 中的值
11)assertEditable检查指定的 input 是否可以编辑
12)assertNotEditable检查指定的 input 是否不可以编辑
13)assertAlert检查是否有产生带指定 message 的 alert 对话框
14)verifyTitle检查预期的页面标题
15)verifyTextPresent验证预期的文本是否在页面上的某个位置
16)verifyElementPresent验证预期的UI元素,它的HTML标签的定义,是否在当前网页上
17)verifyText核实预期的文本和相应的HTML标签是否都存在于页面上
18)verifyTable验证表的预期内容
19)waitForPageToLoad暂停执行,直到预期的新的页面加载
20)waitForElementPresent等待检验某元素的存在。为真时,则执行

unittest 常用的断言方法

序号unittest常用断言描述
1)assertEqual(self, first, second, msg=None)判断两个参数相等:first == second
2)assertNotEqual(self, first, second, msg=None)判断两个参数不相等:first != second
3)assertIn(self, member, container, msg=None)判断是字符串是否包含:member in container
4)assertNotIn(self, member, container, msg=None)判断是字符串是否不包含:member not in container
5)assertTrue(self, expr, msg=None)判断是否为真:expr is True
6)assertFalse(self, expr, msg=None)判断是否为假:expr is False
7)assertIsNone(self, obj, msg=None)判断是否为 None:obj is None
8)assertIsNotNone(self, obj, msg=None)判断是否不为 None:obj is not None

以上这几条,是常用的,但是unittest提供的断言远不止这些,更多断言方法,请参照: unittest官网

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Carl_奕然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值