Selenium : Comment empêcher le processus GeckoDriver d'impacter la mémoire du PC sans fermer le navigateur Web
Afin d'analyser les résultats des tests et de prendre les mesures nécessaires corrections après l'exécution du test, il est important de garder la fenêtre Firefox ouverte après chaque exécution. Cependant, l'appel répété de WebDriver sans fermer le pilote peut entraîner une utilisation excessive de la mémoire sur le PC. Cet article vise à résoudre ce problème et à fournir une solution permettant de terminer le processus GeckoDriver sans fermer le navigateur.
Énoncé du problème
Un script de test a été implémenté pour instancier une instance de GeckoDriver. Lorsque le test est exécuté plusieurs fois sans fermer le pilote à l'aide de la méthode driver.quit(), cela entraîne une augmentation significative de la consommation de mémoire. Cela se produit que le navigateur soit fermé manuellement ou non après le test.
Solution
Les meilleures pratiques pour l'automatisation de Selenium recommandent d'invoquer la méthode quit() dans TearDown() bloc. Cette méthode envoie une commande « quit » au pilote, suivie d'une requête GET au point de terminaison /shutdown. Cette action met complètement fin à la session de navigation et à l'instance WebDriver.
Optimisation supplémentaire
Si vous le souhaitez, vous pouvez supprimer manuellement toutes les instances WebDriver en suspens, telles que GeckoDriver.exe, en utilisant les méthodes suivantes :
Solution Java (Windows) :
Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe /T");
Solution Python (Windows) :
os.system("taskkill /f /im geckodriver.exe /T")
Solution Python (multiplateforme) :
import os import psutil PROCNAME = "geckodriver" for proc in psutil.process_iter(): if proc.name() == PROCNAME: proc.kill()
En incorporant l'une ou l'autre de ces méthodes dans votre cadre de test, vous pouvez optimiser l'utilisation de la mémoire tout en gardant la fenêtre Firefox ouverte pour à des fins d’analyse. Cette approche garantit que le test lui-même n'est pas affecté tout en améliorant les performances globales de vos tests automatisés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!