driver.quit()在未处理的异常之后



我有一个Python脚本,用来让另一个Python剧本在循环中运行。

我基本上把它叫做python loop.py script.py

script.py使用selenium和chromedriver来执行它需要做的任何事情,我试图让这个脚本全天候运行,所以每当它失败时,循环脚本就会重新启动它,并打开chromeriver的另一个实例,打开另一个chrome窗口。

我的问题是,每当我让这个脚本运行几个小时时,就会有一点是,我打开了太多的chrome窗口,导致计算机像你所期望的那样变得非常慢。

script.py分为多个函数,其中一个函数调用其他一些函数,如:

def caller_function():
function1()
function2()
function3()
function4()

我已经处理了一些异常,所以基本上只有当发生未处理的异常时,脚本才会停止。

这个未处理的异常可能发生在任何函数中,所以我似乎找不到处理(?(未处理异常的方法,使其执行driver.quit(),从而在loop.py再次调用script.py之前关闭失败的实例,并打开另一个chrome窗口。

我试着做:

def caller_function():
try:
function1()
function2()
function3()
function4()
except:
driver.quit()

但它没有起作用,因为某种原因,driver.quit((陷入了一个循环,并阻止loop.py重新启动script.py

基本上,每当我早上醒来检查脚本的进度时,我都尽量不打开20多个chrome窗口。有人知道这方面的办法吗?

最终使用

try:
# your code
finally:
driver.quit()

最新更新