简介
通过异常处理能够忽略本次异常让程序继续运行下去。
举例
相信做测试的同学。在做自动化时因为页面未加载完,导致元素无法定位到。是一个大家经常碰到的问题。这时候我们就可以用try…except做一些后续操作,比如记录日志、重试等等,下面给大家举个栗子
# author:别动我名字
# contact: 172212595@qq.com
# datetime:2019/4/11 23:05
# software: PyCharm Community Edition
"""
文件说明:这里用自动化中遇到的问题给大家演示以下python中的异常处理
"""
from selenium import webdriver
from selenium.common import exceptions
from time import sleep
driver = webdriver.Chrome('D:\\Documents\\pica_test\\browser_driver\\chromedriver.exe')
driver.get('https://www.baidu.com/')
try:
driver.find_element_by_id('k').send_keys('python3 异常处理')# 这里定位的id是'kw',假如我们想尝试定位不到的样子,就写一个不存在的id
# name=['name']
# print(name[1]) # 这里会出现 IndexError: list index out of range ,假设不知道这个错误,用 Exception 去捕捉
except exceptions.NoSuchElementException as e: # selenium 中的异常需要导入 from selenium.common import exceptions
print('这里捕捉到一个异常,我需要将以下信息记录到日志中:',e)
print('假装是因为页面元素未加载完,我们等待1秒后重试')
sleep(1)
driver.find_element_by_id('kw').send_keys('python3 异常处理')
sleep(3)
except Exception as e:
print('除了我们已经知道大概率会发生的错误。还可以用Exception 捕捉未知的错误')
driver.quit()
print('因为有了try…except,所以程序出现了异常还会继续运行下去')