定義__del__()析構函數關閉瀏覽器報如下錯誤:ImportError: sys.meta_path is None, Python is likely shutting down
def __del__(self):
"""
析構方法,對象被摧毀時自動執行
:return:
"""
self.driver.quit()
解決方法
從報錯可看出在python安裝目錄\site-packages\selenium\webdriver\common\service.py文件152行理捕捉的異常是TypeError類型錯誤,但是selenuim運行報錯是ImportError錯誤,所把except中的TypeError異常類型更改為ImportError或者Exception異常類型,然后再運行用例,調用成功
__del__方法(析構函數)和垃圾回收機制
del__方法稱為"析構方法",用於實現對象被銷毀時所需的操作,比如:釋放對象占用的資源,例如打卡的文件資源、網絡連接等;
Python實現自動的垃圾回收,當對象沒有被引用時(引用計數為0),由垃圾回收器調用__del__方法;
定義了__del()的實例無法被Python的循環垃圾收集器收集,所以盡量不要定義__del__(),一般情況下,del()不會破壞垃圾處理器;