italia / pa-website-validator

Tool di validazione per i siti di comuni e scuole
BSD 3-Clause "New" or "Revised" License
34 stars 15 forks source link

TimeoutError: Navigation timeout of 30000 ms exceeded #442

Closed eb-ai4 closed 10 months ago

eb-ai4 commented 10 months ago

Buongiorno a tutti, qualcuno mi sa spiegare perché il validatore va in timeout su questa pagina?

https://www.comune.fontanellato.pr.it/amministrazione/politici/

La pagina in questione non va richiede cosi tanto tempo per il caricameto e anche richiamandola via curl non restituisce errori.

"municipality-ux-ui-consistency-bootstrap-italia-double-check": {"id": "municipality-ux-ui-consistency-bootstrap-italia-double-check", "title": "C.SI.1.2 - LIBRERIA DI ELEMENTI DI INTERFACCIA - Il sito comunale deve utilizzare la libreria Bootstrap Italia.", "description": "CONDIZIONI DI SUCCESSO: in ogni pagina è presente e in uso la libreria Bootstrap Italia in una versione uguale o superiore alla 2.0 e almeno il 30% delle classi CSS usate appartiene alle classi CSS di Bootstrap Italia; MODALITÀ DI VERIFICA: in ogni pagina analizzata viene verificata la presenza della libreria Bootstrap Italia e la versione in uso, individuando la proprietà CSS --bootstrap-italia-version all’interno del selettore :root o la variabile globale window.BOOTSTRAP_ITALIA_VERSION. Inoltre, viene verificato che almeno il 30% delle classi CSS uniche trovate nella pagina appartiene all'elenco delle classi CSS di Bootstrap Italia; RIFERIMENTI TECNICI E NORMATIVI: Documentazione del Modello Comuni, Documentazione delle App di valutazione.", "score": null, "scoreDisplayMode": "error", "errorMessage": "Il test è stato interrotto perché nella prima pagina analizzata https://www.comune.fontanellato.pr.it/amministrazione/politici/ si è verificato l'errore \"TimeoutError: Navigation timeout of 30000 ms exceeded\". Verificarne la causa e rifare il test."

A volte va, a volte no... non si capisce perché. E l'output del validatore non aiuta molto. Grazie.

eb-ai4 commented 10 months ago

impostando a requestTimeout * 2 il timeout in goToRetry in https://github.com/italia/pa-website-validator/blob/main/src/utils/utils.ts si risolve il problema di timeout su https://www.comune.fontanellato.pr.it/amministrazione/politici/ e altri siti.
Potete modificarlo nella prossima release? Grazie.

const gotoRetry = async ( page: Page, url: string, retryCount: number ): Promise<HTTPResponse | null> => { try { return await page.goto(url, { waitUntil: ["load", "networkidle0"], *timeout: requestTimeout 2,** }); } catch (error) { ...