1. Aprire pagine web: primi passi
Se hai mai sognato di diventare il maestro delle pagine web, allora sei nel posto giusto. Oggi apriremo pagine web con Selenium e impareremo a interagire con esse. Immagina di controllare il browser come un direttore dirige un'orchestra. Solo che l'orchestra è internet e lo spartito musicale è codice Python. Facciamo iniziare il nostro concerto!
Prima di poter interagire con una pagina web, dobbiamo aprirla, giusto? È come entrare in una biblioteca prima di cercare un libro. In Selenium, l'apertura delle pagine web si fa utilizzando un browser driver. Al momento, diamo per scontato che tu abbia già installato Selenium e il driver appropriato per il browser (ad esempio, ChromeDriver o GeckoDriver). Se hai seguito la lezione precedente, sai come farlo. Se no, torna a leggerla di nuovo.
Vediamo come iniziare con l'apertura semplice di una pagina web:
from selenium import webdriver
# Creiamo un'istanza del browser driver per Chrome
driver = webdriver.Chrome()
# Apriamo la pagina web
driver.get('https://www.example.com')
# Stampiamo il titolo della pagina nella console
print(driver.title)
# Chiudiamo il browser
driver.quit()
Cosa succede nel codice:
- Importiamo webdriver: È il cuore di Selenium, che permette di controllare il browser.
- Creiamo il driver: Qui creiamo un oggetto del driver per Chrome. Può essere qualsiasi browser per cui hai il driver.
-
Apriamo la pagina: Il metodo
get()
carica la pagina specificata tramite l'URL. -
Otteniamo il titolo: Con
driver.title
possiamo stampare il titolo della pagina corrente. -
Chiudiamo il browser: Il metodo
quit()
chiude il browser.
Ecco fatto, abbiamo aperto la nostra prima pagina web! Questo è il primo passo verso il dominio mondiale... ehm... volevo dire, verso l'automazione!
2. Navigazione e gestione delle schede
Aprire una pagina non è abbastanza. Spesso dobbiamo navigare tra le pagine o persino aprire più schede. Immagina di essere un viaggiatore che può teletrasportarsi istantaneamente tra luoghi diversi. Con Selenium è possibile.
Passare da una pagina all'altra
Passare da una pagina all'altra è facile quanto aprirne una:
# Passiamo a un'altra pagina
driver.get('https://www.example.org')
# Usiamo il metodo back() per tornare alla pagina precedente
driver.back()
# Usiamo il metodo forward() per andare avanti
driver.forward()
Gestire le schede
Che ne dici di aprire una nuova scheda? È come portare con te il laptop nelle biblioteche di diverse città!
# Apriamo una nuova scheda e ci spostiamo su di essa
driver.execute_script("window.open('https://www.example.com', '_blank');")
driver.switch_to.window(driver.window_handles[1])
# Torniamo alla prima scheda
driver.switch_to.window(driver.window_handles[0])
Spiegazione:
-
execute_script()
: Si usa per eseguire codice JavaScript nel browser. Qui apriamo una nuova scheda. -
switch_to.window()
: Questo metodo permette di passare da una scheda all'altra. Usiamowindow_handles
per accedere alla lista di tutte le schede aperte.
3. Interagire con la pagina web
Ora che abbiamo imparato ad aprire e navigare tra le pagine, passiamo all'interazione diretta con esse— come un vero programmatore! È come imparare a ballare con ogni pagina web e farlo alla grande.
Interfaccia di interazione
Passiamo a un esempio su come interagire con gli elementi in una pagina. Ad esempio, cercare un campo di testo e digitare del testo:
# Troviamo l'elemento per il suo nome
search_box = driver.find_element_by_name('q')
# Inseriamo del testo nel campo di testo trovato
search_box.send_keys('Selenium Python')
# Troviamo il pulsante di ricerca e facciamo clic su di esso
submit_button = driver.find_element_by_name('btnK')
submit_button.click()
Spiegazione:
-
find_element_by_name()
: Metodo usato per trovare un elemento tramite il suo nome. Qui cerchiamo il campo di testo di ricerca. -
send_keys()
: Permette di digitare del testo nell'elemento trovato. -
click()
: Si usa per simulare il clic su un elemento, ad esempio un pulsante.
Metodi aggiuntivi
Per interazioni più complesse con gli elementi, esistono molti metodi. Dai un'occhiata alla documentazione di Selenium per un approfondimento. Qui esploreremo alcuni dei più comuni.
-
find_element_by_id()
: Trova un elemento tramite ID. -
find_element_by_class_name()
: Trova un elemento tramite classe. -
find_element_by_css_selector()
: Usa i selettori CSS per trovare un elemento.
Ora puoi aprire ed esplorare le pagine come un vero viaggiatore del web! Non aver paura di sperimentare e provare qualcosa di nuovo. Come si dice, "gli errori sono i gradini verso il successo", soprattutto se sei sicuro che il tuo codice sia affidabile e ben testato!
Errori comuni
Lavorare con Selenium può essere un po' come camminare su un campo minato, se non conosci i principali
ostacoli. Uno degli errori più comuni è dimenticare di chiudere la sessione del browser. Questo può portare
a processi del browser bloccati in memoria. Usa sempre driver.quit()
alla fine del tuo script.
Un'altra seccatura per i programmatori in Selenium è il cambiamento della struttura delle pagine web. Se un elemento è stato trovato tramite un selettore e lo sviluppatore del sito cambia la struttura del codice HTML, il tuo script improvvisamente smette di funzionare. È come se ti chiudessero improvvisamente la porta mentre cercavi di entrare in una stanza. È importante scrivere codice flessibile e aggiornarlo regolarmente in base alle modifiche del sito.
GO TO FULL VERSION