python强制退出进程时或是异常错误时强制执行某代码:退出处理器

本文探讨了在使用Python+Selenium进行Web自动化测试时,如何在脚本异常退出时确保正确关闭Chrome浏览器进程。通过引入`atexit`模块,注册异常处理函数,可以在程序异常时确保执行关闭操作。两种方法包括直接注册函数和使用装饰器,后者适用于无参数函数。此方法有助于解决由QProcess调用的Python进程被异常终止时,无法正常执行关闭流程的问题。
摘要由CSDN通过智能技术生成

需求背景:

使用python+selenium做web自动化。脚本异常退出时,需要关闭webdriver的chrome进程,不能让他驻留。本身程序出现异常时,已经用try…except…进行异常捕捉,在except中关闭了chrome。但是由于pythonexe是由QT程序QProces调用,进程会在QProcess中kill(),这种不正常的关闭就不能执行到except。所以需要这部分强制处理。

具体处理:

  1. 添加包:
    import atexit
  2. 定义强制处理函数:
    第一种方法 注册函数:
    def emergency():
    代码处理

atexit.register(emergency)#注册强制处理。

这个注册函数还可以带参数,如果有参数的话。模版为:atexit.register(emergency,args,)

第二种方法 装饰器:
@atexit.register
def emergency():
代码处理

可以注册多个退出函数,会按照注册时间从晚到早开始执行。只有在函数不需要任何参数的情况下才可以使用,有参数的时候需要使用第一种。

atexit参考链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值