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

driver.quit() after unhandled exception

我需要一些帮助来解决我遇到的这个问题。

我有一个 python 脚本,我用它来使另一个 python 脚本 运行 循环。

我基本上是这样叫的python loop.py script.py

script.py 使用 selenium 和 chrome 驱动程序来执行它需要做的任何事情,我试图保持这个脚本 运行 24/7,所以每当它失败时,循环脚本只是重新启动它并打开 chrome 驱动程序的另一个实例,打开另一个 chrome window.

我的问题是,每当我将此脚本 运行 保留几个小时时,有时我打开的 chrome windows 太多,导致计算机速度变慢如您所料。

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

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

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

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

之前

我试过:

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

但它没有用,因为某些原因 driver.quit() 陷入循环并停止 loop.py 重新启动 script.py

基本上,我尽量不在早上醒来时打开 20+ chrome windows 来检查脚本的进度。有人知道解决这个问题的方法吗?

最终用于此目的:

 try:
   # your code

 finally:
   driver.quit()