ホームページ >バックエンド開発 >Python チュートリアル >Selenium で Firefox ブラウザを閉じずに GeckoDriver.exe を強制終了する方法

Selenium で Firefox ブラウザを閉じずに GeckoDriver.exe を強制終了する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-07 13:13:13874ブラウズ

How to Kill GeckoDriver.exe Without Closing the Firefox Browser in Selenium?

Selenium: Web ブラウザを閉じずに PC メモリに影響を与える GeckoDriver プロセスを停止する方法

テスト結果を分析し、必要な処理を行うためテスト実行後に修正を行う場合は、実行のたびに Firefox ウィンドウを開いたままにしておくことが重要です。ただし、ドライバーを終了せずに WebDriver を繰り返し呼び出すと、PC のメモリが過剰に使用される可能性があります。この記事は、この問題に対処し、ブラウザを閉じることなく GeckoDriver プロセスを終了できる解決策を提供することを目的としています。

問題の説明

テスト スクリプトが実装されましたGeckoDriver インスタンスをインスタンス化します。 driver.quit() メソッドを使用してドライバーを閉じずにテストを複数回実行すると、メモリ消費量が大幅に増加します。これは、テスト後にブラウザが手動で閉じられたかどうかに関係なく発生します。

解決策

Selenium 自動化のベスト プラクティスでは、tearDown() 内で quit() メソッドを呼び出すことをお勧めします。ブロック。このメソッドは、「quit」コマンドをドライバーに送信し、続いて GET リクエストを /shutdown エンドポイントに送信します。この操作により、ブラウジング セッションと WebDriver インスタンスが完全に終了します。

追加の最適化

必要に応じて、GeckoDriver.exe などの未解決の WebDriver インスタンスを手動で強制終了できます。次のメソッドを使用します:

Java ソリューション(Windows):

Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe /T");

Python ソリューション (Windows):

os.system("taskkill /f /im geckodriver.exe /T")

Python ソリューション (クロスプラットフォーム):

import os
import psutil

PROCNAME = "geckodriver"
for proc in psutil.process_iter():
    if proc.name() == PROCNAME:
        proc.kill()

これらの方法のいずれかをテスト フレームワークに組み込むことで、最適化できます。分析のために Firefox ウィンドウを開いたままにして、メモリ使用量を確認します。このアプローチにより、自動テストの全体的なパフォーマンスが向上しながら、テスト自体は影響を受けなくなります。

以上がSelenium で Firefox ブラウザを閉じずに GeckoDriver.exe を強制終了する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。