Tesi di Laurea Triennale in Informatica
Università degli Studi di Parma
Dipartimento di Scienze Matematiche, Fisiche e Informatiche
A.A. 2024-2025
Autore: Tommaso Chiti
Relatore: Prof. Enea Zaffanella
Questo repository contiene il lavoro completo della mia tesi di laurea triennale sull'automazione di processi web utilizzando Selenium. Il progetto esplora approcci pratici per automatizzare procedure di data entry in sistemi web che non forniscono API, con particolare focus sul portale IRIS (Institutional Research Information System).
La tesi affronta il paradosso della trasformazione digitale moderna: nonostante la crescente digitalizzazione, molte organizzazioni si trovano ancora a gestire processi manuali ripetitivi a causa della mancanza di integrazione tra sistemi. Quando le API non sono disponibili (sistemi legacy, vendor lock-in, costi elevati), l'automazione dell'interfaccia utente web diventa una soluzione pragmatica e necessaria.
- Automatizzare il processo manuale di compilazione del modulo di Public Engagement nel portale IRIS
- Valutare diverse strategie di esecuzione per ottimizzare prestazioni e affidabilità
- Creare un ambiente di test controllato per sviluppo sicuro e riproducibile
- Dimostrare l'efficacia della Robotic Process Automation (RPA) in contesti reali
thesis/
├── IrisKit/ # Tool di automazione principale (Python + Selenium)
│ ├── core/ # Logica business e modelli
│ ├── runners/ # Strategie di esecuzione ottimizzate
│ ├── Pages/ # Ambiente di test con pagine statiche
│ └── server.py # Server HTTP locale per testing
├── latex/ # Documentazione tesi (LaTeX)
│ ├── Capitoli/ # Capitoli della tesi
│ ├── Immagini/ # Risorse grafiche
│ └── Tesi.tex # Documento principale
└── arsenic/ # PoC WebDriver in Rust (opzionale)
IrisKit è un tool di web scraping automatizzato progettato per gestire la compilazione batch di form multi-step nel sistema IRIS. Caratteristiche principali:
- 🤖 Compilazione Automatica: Gestisce form complessi con vari tipi di input (text, dropdown, radio button, date)
- 📊 Elaborazione Batch: Processa multipli record da file CSV
- ⚡ Strategie Multiple: 3 modalità di esecuzione ottimizzate
original: Massima affidabilità (1 browser per entry)reuse: 2-3x più veloce (riuso browser)threaded: 3-4x più veloce (multi-threading)
- 🔒 Type-Safe: Modelli dati fortemente tipizzati (dataclasses, enums)
- 📝 Logging Completo: Log dettagliati con timestamp
- 📸 Screenshot su Errori: Cattura automatica per debugging
- 🛡️ Gestione Errori Robusta: Gerarchia custom di eccezioni
- 🔄 Resilienza: Continua elaborazione anche in caso di fallimenti individuali
# Installa dipendenze
cd IrisKit
uv sync
# Avvia server di test
python server.py
# Esegui automazione
python main.py original data.csv # Massima affidabilità
python main.py reuse data.csv # Bilanciato
python main.py threaded data.csv # Massima velocità- Python 3.13+
- Google Chrome
La tesi è organizzata in capitoli che coprono aspetti teorici e pratici:
-
Contesto e Motivazione dell'Automazione
- Panorama digitale e trasformazione dei processi aziendali
- RPA (Robotic Process Automation) come disciplina strategica
- Il dilemma dell'integrazione tra sistemi
- Caso di studio: Data entry nel portale IRIS
-
Fondamenti di Automazione Web e Metodologia
- Ambiente di test controllato (server locale + pagine statiche)
- Document Object Model (DOM) e natura dinamica del web
- JavaScript come "sistema nervoso" della pagina
- Sfide della sincronizzazione con contenuti dinamici
-
Implementazione e Architettura
- Design pattern e best practices
- Gestione degli elementi web e strategie di attesa
- Modelli dati e type safety
- Error handling e logging
-
Valutazione delle Prestazioni
- Confronto tra strategie di esecuzione
- Metriche di performance
- Trade-off affidabilità vs velocità
Questo progetto è sviluppato per scopi accademici come parte di una tesi di laurea.
Ringrazio il Prof. Enea Zaffanella per la guida e supervisione durante lo sviluppo di questo lavoro di tesi.