Pythonのseleniumでquitとcloseの違い

PythonのSeleniumで quit()close() メソッドの違いは、WebDriver(ブラウザの制御を担当する部分)を終了または閉じる方法に関連しています。

  1. quit(): quit() メソッドはWebDriverセッション全体を終了します。つまり、WebDriverが制御しているブラウザのウィンドウを全て閉じ、WebDriverプロセス自体も終了します。これにより、すべてのブラウザウィンドウとリソースが解放され、プログラムが完全に終了します。通常、テストスクリプトが完了した後に quit() を使用してWebDriverをクリーンアップするのが一般的です。

    python
    from selenium import webdriver
    
    driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
    # ターゲットのURLを開く
    driver.get('https://example.com')
    
    # WebDriverセッション全体を終了
    driver.quit()
    
  2. close(): close() メソッドは、現在のブラウザウィンドウを閉じますが、WebDriverセッション自体は終了しません。つまり、close() を呼び出すと、ブラウザのウィンドウが1つ閉じられますが、WebDriverプロセスはまだ実行中です。これは、1つのウィンドウを閉じて他のウィンドウを操作し続けたい場合に便利です。

    python
    from selenium import webdriver
    
    driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
    # ターゲットのURLを開く
    driver.get('https://example.com')
    
    # 現在のウィンドウを閉じる
    driver.close()
    
    # 他の操作を実行する
    # ...
    
    # WebDriverセッション全体を終了
    driver.quit()
    

要するに、quit() はWebDriverセッション全体を終了し、close() は現在のウィンドウを閉じることが主な違いです。どちらを使用するかは、プログラムの要件によります。通常、テストが完了したら quit() を使用して、全てのウィンドウとセッションをクリーンアップするのが安全で良い習慣です。