Sto testando il comportamento dell'applicazione Web con Cetriolo (utilizzando Selenium e Watir sotto il cappuccio). La mia app Web ha pagine HTML5 e utilizza il nuovo attributo "required". Se ho un modulo di inserimento dati con un campo obbligatorio e invio tale modulo con il campo vuoto, vorrei verificare che l'app Web risponda correttamente a una condizione di errore.Come si verificano le condizioni di errore nelle pagine HTML5 con cetriolo?
Sfortunatamente, durante il test utilizzando un browser Web HTML5, il messaggio di errore visualizzato in una convalida del campo non riuscita è accessibile a Cucumber tramite il driver Web. In ogni caso, il modulo non viene inviato e la pagina rimane sul modulo di inserimento dati.
D'altra parte, durante il test senza headless o con un browser non conforme a HTML5, il modulo può essere inviato, consentendo alla mia app Web di intercettare l'errore e rinviare l'utente alla pagina del modulo con un messaggio di errore.
Nel secondo caso, posso facilmente verificare l'esistenza del messaggio di errore poiché fa parte dell'HTML fornito nella pagina. Il mio problema è che non riesco a vedere come scrivere un singolo scenario di test che convaliderà la condizione di errore per le situazioni browser headless e HTML5.
È possibile che ciò sia impossibile con lo stato corrente dei driver Web Selenio e Watir. Ma se qualcuno ha qualche idea su come posso verificare il messaggio di errore "richiesto" HTML5, sarebbe un grande aiuto.
EDIT 2012-06-02: Ecco una pagina di esempio con un campione di HTML5 avvertimenti del browser e quali: http://railsdotnext.com/stackoverflow/required.html
C'è un testo richiesto e selezionare, una casella di testo che mostra il testo suggerimento interno, ed un casella di testo con convalida dell'input di espressioni regolari. La pagina non ha alcun CSS o javascript per confondere il problema, è solo vaniglia HTML5. Vedere lo w3schools page about HTML5 field attributes per un'analisi completa. Il modulo si sottomette a un semplice script cgi che fa semplicemente eco all'input del modulo, assumendo che il modulo abbia esito positivo. Un errore di invio rimarrà nella pagina del modulo di esempio.
Esiste un esempio online che utilizza l'attributo 'obbligatorio' che possiamo visualizzare? – Cheezy
Ne ho creato uno piccolo. Non è esaustivo, ma dovrebbe fornire abbastanza per giocare. Vedi EDIT al post originale sopra. –
Più ci penso, testare l'errore HTML5 non è un problema: testerebbe se il browser funziona come progettato. Il problema è nel test della convalida del server quando l'HTML è scritto con moduli HTML5. Non voglio un codice HTML diverso nell'ambiente di test. Sarebbe meglio se Selenium e/o Watir: Webdriver potessero abilitare/disabilitare le risposte HTML5 così come possono essere javascript. –