CodeGym /Corsi /Python SELF IT /Terminazione e testing dello script

Terminazione e testing dello script

Python SELF IT
Livello 36 , Lezione 4
Disponibile

1. Terminare la sessione

Come chiudere correttamente una sessione del browser

Hai uno script fantastico che raccoglie dati, clicca pulsanti e fa un sacco di cose magiche nel browser. Ora è importante terminare correttamente il suo lavoro. Immagina che il tuo browser sia come un pachiderma lento: non puoi semplicemente sbattere la porta e andare via. Devi chiudere tutto educatamente e con calma. Usa il metodo quit().

Python

from selenium import webdriver

# Inizializzazione del driver del browser
driver = webdriver.Chrome()

# qui accade la tua magia del browser... 🧙‍♂️

# Chiusura del browser
driver.quit()

Il metodo quit() chiude tutte le finestre del browser e termina il suo lavoro. Se dimentichi di chiamarlo, inizieranno storie strane con un browser aperto in background e un uso inspiegabile della memoria. Una vita felice, conveniamolo, la vogliono tutti.

Risoluzione dei problemi con i processi del browser bloccati

A volte, dopo aver lavorato con Selenium, i processi del browser continuano a rimanere in background, come unità indecise in un gioco di strategia in tempo reale. Questo può accadere, per esempio, se il tuo script "si schianta" da qualche parte a metà. Un modo per affrontare questo problema è utilizzare la terminazione dei processi in blocco, ad esempio con psutil in Python o altri comandi di sistema.

Python

import psutil

# Chiusura di tutti i processi Chrome bloccati
for proc in psutil.process_iter():
    # Controlliamo se il processo appartiene al browser
    if 'chrome' in proc.name().lower():
        proc.kill()

Non è il modo più elegante, ma a volte non ci sono altre opzioni se i processi diventano ingestibili. Ricorda che così facendo chiuderai tutti i processi del browser, quindi usalo con buon senso.

2. Testing dello script

Verifica della correttezza di ogni passo nello script

Terminare correttamente lo script è solo metà del lavoro. È importante verificare che ogni passo venga eseguito correttamente. Per questo scopo sono perfetti gli strumenti di testing del software, come unittest o pytest. Puoi scrivere test per assicurarti che il tuo script apra correttamente le pagine, clicchi i pulsanti e raccolga i dati.

Vediamo un test minimalista con unittest:

Python

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()

Questo test verifica che il nostro script apra la pagina https://example.com e che il titolo della pagina corrisponda alle aspettative. È un metodo semplice ma potente per assicurarsi che le parti chiave del tuo script funzionino correttamente.

Debugging e ottimizzazione

A volte, anche dopo aver scritto i test, il tuo script si comporta come un bambino capriccioso, rifiutandosi di funzionare correttamente. Qui entra in gioco il debugging. Usa print() per stampare valori intermedi e capire dove esattamente qualcosa è andato storto. Anche i commenti divertenti nel codice sono benvenuti, ma non dimenticare lo scopo: capire cosa sta succedendo.

Ad esempio, hai incontrato un problema con l'assenza di some_element sulla pagina:

Python

try:
    some_element = driver.find_element_by_id('missing-id')
except Exception as e:
    print(f"Ops! Qualcosa è andato storto: {e}")

Inoltre, presta molta attenzione alle performance del tuo script. Talvolta, per ottimizzare il lavoro, puoi usare strategie diverse, come ridurre la frequenza delle richieste o ottimizzare la logica di ricerca degli elementi.

Prevenire crash ed errori futuri

Dopo l'ottimizzazione e il debugging, il tuo script dovrebbe funzionare alla perfezione, come un orologio svizzero, ma c'è sempre il rischio di nuovi problemi. Puoi utilizzare sistemi di logging, come logging, per registrare cosa sta succedendo nel tuo script. Questo ti permetterà di vedere dove e perché qualcosa è andato storto.

Python

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

logger.info("Inizio dello script")

# registra altre azioni qui...

logger.info("Fine dello script")

Ricorda che dovresti sempre prevedere eventi inaspettati, specialmente se stai lavorando con dati o pagine instabili. Considera di implementare sistemi di retry e timeout per evitare che lo script si blocchi al minimo errore.

1
Опрос
Lavorare con i form,  36 уровень,  4 лекция
недоступен
Lavorare con i form
Lavorare con i form
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION