2012-07-23 3 views
5

Sto provando a testare una pagina Web nel selenio creata utilizzando angularjs. In questa pagina sono presenti campi di testo che l'utente compilerà. Mentre l'utente digita i campi di testo, l'angolare preleverà ogni sequenza di tasti e visualizzerà al volo un'anteprima esattamente come la compilazione di una domanda di stackoverflow genera un'anteprima. :)Selenio su campi di testo che attivano gli eventi, un modo per simulare l'interazione umana

Il mio problema è che non riesco a capire come testarlo. Se clicco sul campo di testo e scrivo funziona. Ho provato, il comando tipo selenio, comando typeKeys, usando il comando mouse e mouseup e poi digitaKeys per provare a imitare un utente digitando. Ma non funzionano come se non ci fossero attivatori di eventi non attivati. Ho bisogno di imitare il modo in cui un essere umano fa in modo che gli eventi si inneschino. Questo è quello che sto pensando ma non funziona.

<tr> 
    <td>mouseDown</td> 
    <td>name=appName</td> 
    <td></td> 
</tr> 
<tr> 
    <td>mouseUp</td> 
    <td>name=appName</td> 
    <td></td> 
</tr> 
<tr> 
    <td>typeKeys</td> 
    <td>name=appName</td> 
    <td>foobar</td> 
</tr> 

Se c'è un modo utilizzando JavaScript che sarà troppo accettabile. Grazie.

risposta

5

Stavo riscontrando lo stesso problema con il test dei campi modulo Angular JS utilizzando Selenium IDE. Ho provato praticamente tutte le combinazioni conosciute di focus, click, clickAt, keypress, ecc. Alla fine ho scoperto che ciò che funzionava era usare il comando sendKeys per mettere il testo nel campo. Quindi, in Selenio-IDE, il comando era

sendKeys | xpath=(//input[@type='text'])[2] | TEXT To Enter 

Si noti che ho usato il XPath, ma non importa quello che ho usato per identificare il target (css =, XPath, // div), una delle gli identificatori funzionavano, bastava usare sendKeys per fare il trucco.

+0

Questo è quello che mi serviva! –

1

Provare i comandi di attivazione o di clic.