前提・実現したいこと
seleniumのfirefoxのwebdriverをquit関数で閉じる時,タスクマネージャーで見ていると閉じずにそのまま残ってしまいます.
これは,通常であればしっかりとquit関数は機能するのですが,classを作ってデストラクタ内でquit関数を実行すると
quit関数は機能せずに残ってしまいます.
これはなぜですか,わかる人がいれば教えてください。
(chromeはテストしてないです.)
該当のソースコード
python
1from selenium import webdriver 2from webdriver_manager.firefox import GeckoDriverManager 3 4class Brow: 5 def __init__(self,headlessFlag:bool): 6 # driverのセットアップ 7 profile = webdriver.FirefoxProfile() 8 profile.set_preference("dom.disable_beforeunload",True) 9 self.options = webdriver.FirefoxOptions() 10 self.options.set_headless(headlessFlag) 11 self.driver= webdriver.Firefox(executable_path=GeckoDriverManager().install(), 12 options=self.options,firefox_profile=profile) 13 self.driver.implicitly_wait(30) 14 pass 15 def __del__(self): 16 self.quit() 17 print("デストラクタ") 18 pass 19 def __exit__(self,ex_type,ex_value,trace): 20 print("exit: ",ex_type,ex_value,trace) 21 self.driver.quit() 22 pass 23 def quit(self): 24 self.driver.quit() 25 options = [] 26 driver = [] 27 28browser = Brow(False) 29browser.quit() 30#del browser
試したこと
デストラクタ内でquit関数の実行(タスクマネージャーから消えない)
デストラクタ外でquit関数を実行(タスクマネージャーから消えた)
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
OS windows 10 pro
editer visual studio code
python ver 3.6.8
selenium ver 3.141.0
あなたの回答
tips
プレビュー