1. Terminer la session
Comment bien terminer une session de navigateur
Alors, tu as un script génial qui collecte des données,
clique sur des boutons et fait plein de choses magiques
dans ton navigateur. Maintenant, il est important de bien
compléter son exécution. Imagine que ton navigateur est un
éléphant tranquille : tu ne peux pas juste claquer la porte
et partir. Tu dois poliment et calmement fermer la session.
Pour cela, utilise la méthode quit()
.
from selenium import webdriver
# Initialisation du driver du navigateur
driver = webdriver.Chrome()
# ici, la magie du browsing se passe... 🧙♂️
# Fermeture du navigateur
driver.quit()
La méthode quit()
ferme toutes les fenêtres
du navigateur et arrête complètement son exécution. Si tu
oublies de l'appeler, des choses bizarres vont commencer à se
produire avec des fenêtres de navigateur ouvertes en arrière-plan
et des fuites de mémoire inexplicables. Et on est d'accord,
tout le monde veut une vie heureuse.
Résoudre les problèmes avec des processus de navigateur bloqués
Parfois, après avoir utilisé Selenium, les processus du
navigateur continuent de traîner en arrière-plan comme des
unités indécises dans un RTS. Cela peut arriver, par exemple,
si ton script "s'écrase" au milieu. Une des façons de gérer
ce problème est d'utiliser une fermeture par lot des
processus, par exemple, avec psutil
en Python ou
d'autres commandes système.
import psutil
# Fermeture de tous les processus Chrome bloqués
for proc in psutil.process_iter():
# Vérifiez si le processus appartient au navigateur
if 'chrome' in proc.name().lower():
proc.kill()
Ce n'est pas la méthode la plus élégante, mais parfois tu n'as pas d'autre option lorsque les processus deviennent incontrôlables. Rappelle-toi qu'en faisant cela, tu vas tuer tous les processus du navigateur, donc utilise-le raisonnablement.
2. Tester le script
Vérifier que tous les étapes du script fonctionnent bien
Terminer avec succès l'exécution du script, c'est juste la
moitié du travail. Il est important de vérifier que chaque
étape fonctionne correctement. Pour ça, les outils de
test logiciels
comme unittest
ou pytest
sont
parfaits. Tu peux écrire des tests pour vérifier que ton
script ouvre correctement les pages, clique sur les boutons
et collecte les données.
Prenons un exemple minimaliste avec unittest
:
import unittest
from selenium import webdriver
class TestBrowserAutomation(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
def test_open_page(self):
self.driver.get("https://example.com")
self.assertEqual("Example Domain", self.driver.title)
def tearDown(self):
self.driver.quit()
unittest.main()
Ce test vérifie que notre script ouvre la page https://example.com et que le titre de la page correspond aux attentes. C'est une méthode simple mais puissante pour s'assurer que les parties essentielles de ton script fonctionnent correctement.
Debug et optimisation
Parfois, même après avoir écrit des tests, ton script se
comporte comme un enfant capricieux, refusant de marcher comme
il faut. Et c'est là que le debug entre en scène. Utilise
print()
pour afficher des valeurs intermédiaires
et voir où ça coince. Et bien sûr, les petits commentaires
humoristiques dans le code sont les bienvenus, mais n'oublie
pas l'objectif : comprendre ce qui se passe.
Par exemple, tu es confronté à un problème où some_element est manquant sur la page :
try:
some_element = driver.find_element_by_id('missing-id')
except Exception as e:
print(f"Oops ! Un problème est survenu : {e}")
En outre, surveille toujours la performance de ton script. Parfois, pour optimiser, tu peux utiliser différentes stratégies comme réduire la fréquence des requêtes ou optimiser la logique dans la recherche des éléments.
Prévenir les échecs futurs et les bugs
Après optimisation et debug, ton script devrait fonctionner
parfaitement, comme une horloge suisse, mais il y a toujours
un risque que de nouveaux problèmes apparaissent. Tu peux
utiliser des systèmes de log comme logging
pour
noter ce qui se passe dans ton script. Cela te permet de voir
où et pourquoi quelque chose a mal tourné.
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
logger.info("Début du script")
# log plus d'actions ici...
logger.info("Fin du script")
Souviens-toi de toujours anticiper les imprévus, surtout si tu travailles avec des données instables ou des pages web. Pense à intégrer des systèmes de retries et de timeouts pour éviter que ton script tombe au moindre pépin.
GO TO FULL VERSION