Maison > développement back-end > Tutoriel Python > Comment tuer GeckoDriver.exe sans fermer le navigateur Firefox dans Selenium ?

Comment tuer GeckoDriver.exe sans fermer le navigateur Firefox dans Selenium ?

Susan Sarandon
Libérer: 2024-12-07 13:13:13
original
873 Les gens l'ont consulté

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

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");
Copier après la connexion

Solution Python (Windows) :

os.system("taskkill /f /im geckodriver.exe /T")
Copier après la connexion

Solution Python (multiplateforme) :

import os
import psutil

PROCNAME = "geckodriver"
for proc in psutil.process_iter():
    if proc.name() == PROCNAME:
        proc.kill()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal