2013-08-16 15 views
5

Il nostro team sta lavorando su un'app Web con AngularJS. Per il test, utilizziamo Jasmine per il test unitario e il test angolare-e2e. Funziona bene Tuttavia, il nostro team di controllo qualità si è rivolto a noi oggi che hanno provato a utilizzare il selenio per testare l'app Web, ma affrontano problemi poiché non definiamo gli ID per la maggior parte degli elementi DOM. Abbiamo studiato un po 'su questo, ma senza fortuna. Qualcuno potrebbe suggerire un buon metodo per eseguire il test del selenio senza dover aggiungere esplicitamente tutti gli ID solo per l'uso del selenio? Grazie!Test di Angularjs con selenio senza elemento ID

Aggiornamento

Abbiamo alcune incontri e ha finito per l'inserimento di ID per elementi di robustezza in fase di test. Grazie a tutti per aver risposto :)

+1

Questo è possibile sì, vedere sotto la risposta. Tuttavia, si tenga presente che i test creati usando 'xpath' o' css-selectors' saranno più fragili di quelli creati con gli 'ID' univoci propri per gli elementi. –

+0

Grazie per la nota! Quindi è meglio che introduciamo ID univoci per tutti gli elementi in questo caso? Attualmente nel nostro team ci sono due riflessioni su questo, non dovremmo modificare l'app tanto (introducendo molti ID) solo per uno strumento di supporto; due, introdurre gli ID non è così difficile né distruttivo, se risolve il problema, perché no? Entrambi i pensieri ci sembrano ragionevoli, quale sarebbe il modo migliore in questo caso? – PSWai

risposta

5

Se si utilizza Selenium WebDriver ci sono molti modi per trovare elementi in una pagina. XPATH è probabilmente uno degli approcci migliori per quanto riguarda la flessibilità (anche se può diventare brutto rapidamente), ma WebDriver consente anche di utilizzare nomi di classi, nomi di tag, nomi, testi di collegamento e CSS.

Selenium WebDriver - Locate UI Elements

+0

Grazie per averlo fatto notare! Personalmente non ho esperienza con Selenium WebDriver quindi non sono molto sicuro di questo, mi rivolgerò nuovamente alla nostra squadra di QA su questo :) – PSWai

1

abbiamo incontrato la stessa situazione nel nostro lavoro ora. Come accennato in questa discussione, abbiamo confrontato le possibili due approcci per superare questo problema:

  1. cercare di individuare gli elementi in modo diverso.
  2. Introdurre nuovi attributi dove necessario, anche se non richiesti dallo sviluppo angolare.

Abbiamo deciso di andare con (2) e aggiungere ID se necessario. Test di robustezza in molto meglio e il sovraccarico non è affatto significativo.

Cosa abbiamo fatto esattamente? Agli elementi pertinenti, l'attributo denominato "gancio dati" è stato aggiunto con il valore corretto che lo identifica. Funziona alla grande.

Problemi correlati