CodeGym /Corsi /Python SELF IT /Compilazione dei moduli: inserire testo e cliccare pulsan...

Compilazione dei moduli: inserire testo e cliccare pulsanti

Python SELF IT
Livello 36 , Lezione 0
Disponibile

1. Introduzione all'interazione con elementi dei moduli

I moduli nelle pagine web sono il punto in cui la magia dell'interazione inizia. Immagina un modulo come un misterioso pannello di controllo che permette all'utente di interagire con il sistema. Ma invece di dare istruzioni a un robot aspirapolvere, stiamo fornendo informazioni al sito web.

Come inserire testo nei campi di testo

Per cominciare, parliamo di come Selenium ci permette di inserire testo nei campi di testo. Questo si fa usando il metodo send_keys(). Esploriamolo passo dopo passo.

Python

from selenium import webdriver

# Impostiamo il percorso per il web driver, questo è il percorso alla tua copia di webdriver
driver = webdriver.Chrome(executable_path='path/to/chromedriver')

# Apriamo la pagina web
driver.get('http://example.com/login')

# Troviamo il campo di input (ad esempio tramite id) e inseriamo il testo
username_field = driver.find_element_by_id('username')
username_field.send_keys('il_mio_account_super')

password_field = driver.find_element_by_id('password')
password_field.send_keys('la_mia_password_super_segreta')

In questo semplice esempio, apriamo la pagina, troviamo gli elementi di input tramite il loro ID, e usiamo il metodo send_keys() per inserire il testo nei campi. Sì, è semplice come fare un copy-paste su un altro livello!

Trucchetto importante per compilare i campi di testo

Se pensi che il modulo si comporti in modo strano, è possibile che il campo di input abbia già del testo. Prima di inserire nuovo testo, cancella il vecchio usando il metodo clear().

Python

username_field.clear()
username_field.send_keys('nuovo_valore')

Questo piccolo trucco ti eviterà un sacco di mal di testa, parola mia!

2. Cliccare i pulsanti

Ora che i nostri campi di input sono compilati, è il momento di cliccare un pulsante, ad esempio per inviare un modulo. Con Selenium, si fa tramite il metodo click(). È un po' come cliccare "Vedi più meme", ma in modalità automatica.

Python

# Troviamo il pulsante tramite il suo nome e clicchiamo
login_button = driver.find_element_by_name('login')
login_button.click()

E voilà, il nostro script Selenium è diventato un maître del clic, capace di molto più che cliccare "Fai una scelta" nei giochi!

Esempi di utilizzo

Esaminiamo un esempio che unisce l'uso dei metodi send_keys() e click() per compilare e inviare un modulo di registrazione.

Python

# Apriamo la pagina di registrazione
driver.get('http://example.com/register')

# Compiliamo il modulo di registrazione
driver.find_element_by_id('first_name').send_keys('Ivan')
driver.find_element_by_id('last_name').send_keys('Ivanov')
driver.find_element_by_id('email').send_keys('ivan@example.com')
driver.find_element_by_id('password').send_keys('superSegreto123')

# Clicchiamo sul pulsante "Registrati"
register_button = driver.find_element_by_css_selector('.register-button')
register_button.click()

Questo semplice esempio mostra come puoi automatizzare il processo di registrazione su un sito. Potrebbe essere utile per testare un modulo di registrazione o simulare l'attività degli utenti.

3. Gestione di moduli capricciosi

A volte le pagine amano scherzare con te. Clicchi su un pulsante e non succede nulla. O peggio, la pagina mostra un errore. Discutiamo alcuni problemi comuni e come risolverli.

Lavorare con elementi dinamici

A volte gli elementi di una pagina non si caricano subito. In questi casi, il tuo script potrebbe provare a interagire con un elemento prima che sia caricato. È come iniziare a fare una frittata prima di aver preso le uova dal frigo.

Per evitare questi capricci, usa le attese. Selenium permette di attendere che un elemento sia disponibile:

Python

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Aspettiamo che l'elemento diventi cliccabile prima di cliccare
register_button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, '.register-button'))
)
register_button.click()

Con WebDriverWait puoi indicare a Selenium di aspettare finché l'elemento non è pronto per l'azione. Questo aumenta significativamente l'affidabilità del tuo script.

Interagire con elementi invisibili

Alcuni elementi sulla pagina potrebbero essere invisibili, come pulsanti o campi nascosti. Questo potrebbe causare un errore nel tentativo di interagire. In tal caso, puoi rendere visibile l'elemento usando JavaScript:

Python

driver.execute_script("arguments[0].style.visibility='visible';", hidden_element)
hidden_element.click()

Questo metodo ti consente di interagire con elementi che, per qualche motivo, sono nascosti.

4. Applicazione pratica: automazione dei moduli

Ora che sappiamo come interagire con i moduli, vediamo dove potrebbe essere applicabile nella vita reale.

Il tuo capo ha deciso che tutti devono compilare dei report quotidiani tramite un modulo web. E ovviamente vuoi automatizzare un po' questo processo noioso. Con Selenium puoi creare uno script che compila e invia automaticamente il modulo con i dati del tuo report ogni giorno.

Esempio di automazione di un report

Immagina di avere un sito con un modulo per i report giornalieri. Il modulo include campi per il tuo nome, dipartimento e un resoconto del lavoro completato. Automatizziamolo:

Python

driver.get('http://example.com/daily_report')

# Compiliamo il modulo del report
driver.find_element_by_id('name').send_keys('Anna Petrova')
driver.find_element_by_id('department').send_keys('Tecnologie')
driver.find_element_by_id('report').send_keys('Oggi ho risolto tutti i bug!')

# Inviamo il modulo
submit_button = driver.find_element_by_id('submit')
submit_button.click()

Uno script del genere può risparmiare tempo prezioso ed eliminare la possibilità di errori umani. Ricorda che per moduli complessi è necessario testare ogni passaggio e considerare eventuali errori.

E così, siamo arrivati alla fine della lezione di oggi! Oggi abbiamo imparato a inserire testo nei campi e a cliccare pulsanti come dei sistemi di sondaggi online, dandoti un incredibile potere di automazione nelle interazioni con le pagine web.

Continua a sperimentare con Selenium e rimani con noi per scoprire di più su come trasformare il tuo browser in una vera macchina per l'automazione!

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION