簡體   English   中英

退出python腳本時如何退出selenium chrome驅動程序?

[英]How to exit selenium chrome driver when exiting python script?

我每天運行 flathunter 腳本 14 小時,每次執行都會打開一個 chromedriver 實例

https://github.com/flathunters/flathunter/blob/main/flathunter/abstract_crawler.py#L48-L56

過了一會兒,我打開了很多這樣的進程在此處輸入圖像描述

如果是這種情況,webdriver 的新實例可能會因為“port already in use”錯誤而失敗。

是否有可能以這種方式在 python 中運行 webdriver,以便在 flathunter.py 退出時(手動或由於失敗)關閉 webdriver 進程?

您可以使用try-except-finally塊包裝所有 Selenium 代碼。 finally塊中,您可以放置一個driver.close()方法,以便在出現未捕獲的異常/故障時關閉driver進程。
這種方法的缺點是這可能會導致難以捕獲報告偵聽器的故障。

就在flathunter.py存在之前,通過proc.kill()殺死所有ChromeDriver進程,如下所示:

import os
import psutil

PROCNAME = "chromedriver" # or geckodriver or IEDriverServer
for proc in psutil.process_iter():
    # check whether the process name matches
    if proc.name() == PROCNAME:
        proc.kill()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM